changed base structure to call modules selectively