main module extracted