Decouple the User\AbstractController from the other modules; move the shared code into the PopUser\Project object