LayoutFactory and ControllerFactory remove application coupling