code for precompile