Move User to (top-level) trait and document it