fleshed out models - user has attributes finally