basic user model, closes #87