[#409] custom user model

New PR for merging the user model into the v3 branch.