refactored so each tab is a vc