added tests, a user model, password funct, data constract, authentication