Create constructior logic moved to core\Controller\ControllerBuilder.
New tests.
more refactoring.