separate _initialize() and starup() callbacks, so the app_controller can hook in before the sub controllers are initialized