add user model. improve validate,etc. (~list 6.20)