New event framework and migrate the widgets