added documentation and options to user model