added basic user model, and some oauth flows