re-design the ui and bugfix