added validation on user model
add password support