precompile and push