don't instantiate the controller until it has to be called