update component: adjust widget as uniform interface