feature: create base class for widget and controller (module class)