some improvements in user model