use SingleCompile