nearly completed user model