this doesn't look right because it will cause the controller to be instantiated only after the template arrives.

the original code instantiated controller even before the template defined via templateUrl arrived. We should preserve the timing.