new GUI
architecture change initial commit
code refactoring
code refactoring #2