new precompile method