user model improved