refactore UI