recompile as needed