rewrite the ui
Merge branch 'ui-refactory'