added UserRepositoryInterface