putting precompilation in a separate transactions