add tests and add user model