added users functionality, item functionality, and lots of tests