Extensive refactoring to make interface scale to other views