refactored the ui.