implemented UserRepository