precompiler working