+ full User class implementation