refactoring UI to use ViewControllers