improve ComileFile()