register widget, build widget, load styles/js