fleshing out user model