redesign the UI, add some functions