start of boilerplate and basic functioning
rename base class module