Update User Model

I’ve updated the user model to include the features required. There are
probably some mistakes and I don’t believe it is fully implemented