separated user entity from UserRepository