added user model, user tests
refactor user model a bit