support various module formats