changed abstract repository class to public abstract