introduce base class for modules