added model tests and validations
add authentication and user model