reduce # of recompiles needed