User as a type parameter