implement properties as JSON
implement retrieveUser + authenticate with uid or email or nickname