refactoring and user interface develop