more work on user model