Better design for main view controller