UserRepository implementation