Refactor widgets and add visualization widget with cross fade