diff --git a/optimism/.gitignore b/optimism/.gitignore
index 53df36bb78..b7314c49ea 100644
--- a/optimism/.gitignore
+++ b/optimism/.gitignore
@@ -1 +1,2 @@
 rpcs.sh
+snapshot-state*
\ No newline at end of file
diff --git a/optimism/src/main.rs b/optimism/src/main.rs
index 274a37250e..584e0873ba 100644
--- a/optimism/src/main.rs
+++ b/optimism/src/main.rs
@@ -7,7 +7,7 @@ use kimchi_optimism::{
     keccak::column::{KeccakWitness, KeccakWitnessTrait, ZKVM_KECCAK_COLS},
     mips::{
         column::{MIPSWitness, MIPSWitnessTrait, MIPS_COLUMNS},
-        witness::{self as mips_witness, SCRATCH_SIZE},
+        witness::{self as mips_witness},
     },
     preimage_oracle::PreImageOracle,
     proof, DOMAIN_SIZE,
@@ -78,10 +78,10 @@ pub fn main() -> ExitCode {
         ark_ec::short_weierstrass_jacobian::GroupAffine<ark_bn254::g1::Parameters>,
     >::default();
 
-    let mips_reset_pre_folding_witness = |witness_columns: &mut MIPSWitness<Vec<_>>| {
+    let _mips_reset_pre_folding_witness = |witness_columns: &mut MIPSWitness<Vec<_>>| {
         let MIPSWitness { cols } = witness_columns;
         // Resize without deallocating
-        cols.iter_mut().for_each(Vec::clear);
+        cols.iter_mut().for_each(Vec::<Fp>::clear);
     };
 
     let mut mips_current_pre_folding_witness = MIPSWitness {
@@ -144,7 +144,7 @@ pub fn main() -> ExitCode {
         }
 
         // TODO: unify witness of MIPS to include the instruction and the error
-        for i in 0..MIPS_COLUMNS {
+        /*for i in 0..MIPS_COLUMNS {
             if i < SCRATCH_SIZE {
                 mips_current_pre_folding_witness.cols[i].push(env.scratch_state[i]);
             } else if i == MIPS_COLUMNS - 2 {
@@ -165,7 +165,7 @@ pub fn main() -> ExitCode {
                 &mips_current_pre_folding_witness,
             );
             mips_reset_pre_folding_witness(&mut mips_current_pre_folding_witness);
-        }
+        }*/
     }
     if !mips_current_pre_folding_witness
         .instruction_counter()
diff --git a/optimism/src/mips/witness.rs b/optimism/src/mips/witness.rs
index e3d9640709..e17112e3fe 100644
--- a/optimism/src/mips/witness.rs
+++ b/optimism/src/mips/witness.rs
@@ -63,7 +63,7 @@ pub struct Env<Fp> {
     pub registers: Registers<u32>,
     pub registers_write_index: Registers<u64>,
     pub scratch_state_idx: usize,
-    pub scratch_state: [Fp; SCRATCH_SIZE],
+    pub scratch_state: [u64; SCRATCH_SIZE],
     pub halt: bool,
     pub syscall_env: SyscallEnv,
     pub preimage_oracle: PreImageOracle,
@@ -74,8 +74,8 @@ pub struct Env<Fp> {
     pub hash_counter: u64,
 }
 
-fn fresh_scratch_state<Fp: Field, const N: usize>() -> [Fp; N] {
-    array::from_fn(|_| Fp::zero())
+fn fresh_scratch_state<const N: usize>() -> [u64; N] {
+    array::from_fn(|_| 0)
 }
 
 const KUNIT: usize = 1024; // a kunit of memory is 1024 things (bytes, kilobytes, ...)
@@ -323,7 +323,7 @@ impl<Fp: Field> InterpreterEnv for Env<Fp> {
             self.write_column(position, 0);
             0
         } else {
-            self.write_field_column(position, Fp::from(*x).inverse().unwrap());
+            self.write_column(position, 0);
             1 // Placeholder value
         }
     }
@@ -809,10 +809,6 @@ impl<Fp: Field> Env<Fp> {
     }
 
     pub fn write_column(&mut self, column: Column, value: u64) {
-        self.write_field_column(column, value.into())
-    }
-
-    pub fn write_field_column(&mut self, column: Column, value: Fp) {
         match column {
             Column::ScratchState(idx) => self.scratch_state[idx] = value,
             Column::InstructionCounter => panic!("Cannot overwrite the column {:?}", column),