module compilation order