updated implementation to use injected ViewControllers.