Not entirely necessary, but its useful to typehint these params. and i think `@return` should be `User`