added tests and a user class and stuff