updated user model and added 100% coverage tests