Moved controller-specific functionality into base controller and extending modules.