UI + refactoring