big UI refactoring