add ui
implement event binding