several bug fixed
improved UX - part III
code refactor - part I