Improved user model. Closes #12