starting a massive refactoring to use widgets
restructuring toward integration with widgets