diff --git a/fuzzer/Fuzzer.java b/fuzzer/Fuzzer.java
index 70afc3fc834857597f7823e2b84ef318cf67e061..8c8bf28e14cf4942ae27077398577de1fa0e2353 100644
--- a/fuzzer/Fuzzer.java
+++ b/fuzzer/Fuzzer.java
@@ -118,22 +118,22 @@ public class Fuzzer {
         switch (runCount){
             case 0:
                 // Test with stack full
-                return generateInput(true, INSTRUCTION_MAX, MAX_STACK_SIZE, true, false);
+                return generateInput(true, INSTRUCTION_MAX, MAX_STACK_SIZE, false, false, false);
             case 1:
                 // Test with stack full
-                return generateInput(true, INSTRUCTION_MAX, MAX_STACK_SIZE - 1, true, false);
+                return generateInput(true, INSTRUCTION_MAX, MAX_STACK_SIZE - 1, false, false, false);
             case 3:
                 // Run static tests and empty stack
-                return getStaticTests() + generateInput(true, INSTRUCTION_MAX, 0, true, false);
+                return getStaticTests() + generateInput(true, INSTRUCTION_MAX, 0, false, false, false);
             case 4:
                 // Test with dynamic probability
-                return generateInput(true, INSTRUCTION_MAX, 0, true, false);
+                return generateInput(true, INSTRUCTION_MAX, 0, true, false, false);
             case 5:
                 // Test with long var names
-                return generateInput(true, INSTRUCTION_MAX, 0, true, true);
+                return generateInput(true, INSTRUCTION_MAX, 0, false, true, false);
         }
         // Run from random stack
-        return generateInput(true, INSTRUCTION_MAX, 0, true, false);
+        return generateInput(true, INSTRUCTION_MAX, 0, false, false, false);
     }
 
 
@@ -155,7 +155,7 @@ public class Fuzzer {
             boolean stackFull = rand.nextInt(100) < STACK_FULL_PERCENTAGE;
 
             result.append(generateInput(false,
-                                        INSTRUCTION_MAX, MAX_STACK_SIZE, false, false));
+                                        INSTRUCTION_MAX, MAX_STACK_SIZE, false, false, false));
             // Increment generated
             generated += 1;
         }
@@ -184,12 +184,13 @@ public class Fuzzer {
         if (instructionStack.size() >= MAX_STACK) {
             instructionStack.clear();
         }
-        /*System.out.println("stack: " + Arrays.toString(instructionStack.toArray()));
-        for (List<Instruction> list: pathwayProb.keySet()) {
-            String key = list.toString();
-            String value = pathwayProb.get(list).toString();
-            System.out.println("map: " + key + " " + value);
-        }*/
+        //System.out.println("stack: " + Arrays.toString(instructionStack.toArray()));
+        //for (List<Instruction> list: pathwayProb.keySet()) {
+        //    String key = list.toString();
+        //    String value = pathwayProb.get(list).toString();
+        //    System.out.println("map: " + key + " " + value);
+        //}
+
 
     }
 
@@ -200,14 +201,14 @@ public class Fuzzer {
      * @param numInstructions for the line
      * @return the concatenated input for the program as a string
      */
-    private static String generateInput(boolean correct, long numInstructions, int stackPreload, boolean dynamicProb, boolean longVarNames){
+    private static String generateInput(boolean correct, long numInstructions, int stackPreload, boolean dynamicProb, boolean longVarNames, boolean badInstruct){
         int stackSize = 0;
         int counter = 0;
 
         StringBuilder result = new StringBuilder();
 
         for ( int i = 0 ; i < stackPreload ; i++ ) {
-            result.append(completeInstruction(true, Instruction.PUSH, false));
+            result.append(completeInstruction(true, Instruction.PUSH, false, false));
             stackSize++;
         }
 
@@ -215,7 +216,7 @@ public class Fuzzer {
             while (counter < numInstructions) {
                 Instruction newInstr = Instruction.getRandomInstruction(stackSize, instructionStack, pathwayProb);
                 stackSize = stackSize + newInstr.getStackChange();
-                result.append(completeInstruction(true, newInstr, false));
+                result.append(completeInstruction(true, newInstr, false, false));
                 if (dynamicProb) {
                     incrementStackAndCount(newInstr);
                 }
@@ -226,13 +227,13 @@ public class Fuzzer {
                 Instruction newInstr;
                 if (rand.nextInt(100) < LINE_ERROR_PERCENTAGE){
                     newInstr = Instruction.getRandomInstruction(2, instructionStack, pathwayProb);
-                    result.append(completeInstruction(false, newInstr, longVarNames));
+                    result.append(completeInstruction(false, newInstr, longVarNames, badInstruct));
                     if (dynamicProb) {
                         incrementStackAndCount(newInstr);
                     }
                 } else {
                     newInstr = Instruction.getRandomInstruction(stackSize, instructionStack, pathwayProb);
-                    result.append(completeInstruction(true, newInstr, false));
+                    result.append(completeInstruction(true, newInstr, false, false));
                     if (dynamicProb) {
                         incrementStackAndCount(newInstr);
                     }
@@ -255,7 +256,7 @@ public class Fuzzer {
      * @param instruction type
      * @return string with parameter
      */
-    private static String completeInstruction(boolean correct, Instruction instruction, boolean longVarNames){
+    private static String completeInstruction(boolean correct, Instruction instruction, boolean longVarNames, boolean badInstruct){
         
         String name = "";
         switch (instruction) {
@@ -265,14 +266,18 @@ public class Fuzzer {
                     name = " " + ((Integer) randomRange(VAR_MIN, VAR_MAX)).toString();
                 } else {
                     // If incorrect, increase the range to outside +- int31_t
-                    name = " " + ((Long) (randomRange(-1,1)*((long) VAR_MAX + (long) randomRange(0, VAR_MAX)))).toString();
+                    if (!badInstruct) {
+                        name = " " + ((Long) (randomRange(-1, 1) * ((long) VAR_MAX + (long) randomRange(0, VAR_MAX)))).toString();
+                    }
                 }
                 break;
             case LOAD:
             case REM:
                 // If not correct, make up a name not in the list
                 if (!correct){
-                    name = generateName(longVarNames);
+                    if (!badInstruct) {
+                        name = generateName(longVarNames);
+                    }
                 }
                 // If no variables, return empty string
                 else if (vars.size() == 0){
@@ -286,22 +291,30 @@ public class Fuzzer {
                 }
                 break;
             case STORE:
-                // If not correct, make up a name not in the list
+                // If correct, make up a name not in the list
                 if (correct || vars.size() == 0){
                     // Make up a name
                     name = generateName(longVarNames);
                     vars.add(name);
                 }
-                // If no variables, return empty string
+                // Otherwise get name from exiting, or no name
                 else {
-                    name = vars.get(randomRange(0,vars.size()-1));
+                    if (!badInstruct) {
+                        name = vars.get(randomRange(0, vars.size() - 1));
+                    }
                 }
 
 
                 name = " " + name;
                 break;
             case SAVE:
-                name = " " + generateName(longVarNames) + ".txt";
+                if (correct){
+                    name = " " + generateName(false) + ".txt";
+                } else {
+                    if (!badInstruct) {
+                        name = " " + generateName(longVarNames) + ".txt";
+                    }
+                }
                 break;
             case PLUS:
             case SUB:
@@ -327,7 +340,7 @@ public class Fuzzer {
         int length;
 
         if (longVarName){
-            length = VAR_NAME_LENGTH_MAX + 100;
+                length = VAR_NAME_LENGTH_MAX + 100;
         } else {
             // Randomise the length of the string
             length = rand.nextInt(VAR_NAME_LENGTH_MAX);