restructure ui.js