User model and some odds and ends