diff --git a/fuzz.s b/fuzz.s
index 8b137891791fe96927ad78e64b0aad7bded08bdc..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644
--- a/fuzz.s
+++ b/fuzz.s
@@ -1 +0,0 @@
-
diff --git a/fuzzer/Fuzzer.java b/fuzzer/Fuzzer.java
index 6420da09f8f4d6f55e0f699ff8a28dbe6713467d..6816e664fac7f407c844099567bb8466ecdf4cbd 100644
--- a/fuzzer/Fuzzer.java
+++ b/fuzzer/Fuzzer.java
@@ -13,7 +13,7 @@ public class Fuzzer {
     private static final String OUTPUT_FILE = "fuzz.s";
     private static final List<String> validOpcodes = new ArrayList<String>(Arrays.asList("ADD","SUB","MUL","DIV","LDR","STR","MOV","JMP","JZ"));
     private static final int maxRegistry = 32;
-    private static final int maxMemory = 65536;
+    private static final int maxMemory = 65535;
     private static final String alphabet = "1234567890-=`~!@#$%6&*()_+q wertyuiop[]QWERTYUIOP{}|asdfghjkl;ASDFGHJKL:zxcvbnm,./ZXCVBNM<>?\"\'\\";
     public static void main(String[] args) throws IOException {
         FileOutputStream out = null;
@@ -23,10 +23,11 @@ public class Fuzzer {
             pw = new PrintWriter(out);
             Random rg = new Random();
             //----------Fuzzer Begins Here----------//
-            String line = generateMemoryUnderflow(rg);
-            		System.out.println("Testing line: "+line);
-            pw.println(line);
-         
+
+            
+            
+            
+
             //----------Fuzzer Ends Here----------
         }catch (Exception e){
             e.printStackTrace(System.err);
@@ -44,26 +45,25 @@ public class Fuzzer {
     //-----------Generation Functions----------//
     public static String generateMemoryOverflow(Random rg) {
     	String line = new String();
-    	line.concat("MOV R0 "+maxMemory+"%n");
-    	line.concat("MOV R1 1 %n");
+    	line = line +"MOV R0 "+maxMemory+"\n";
+    	line = line +"MOV R1 1 \n";
     	if(rg.nextBoolean()) {
-    		line.concat("LDR R0 R1 1");
+    		line = line +"LDR R0 R1 1";
     	} else {
-    		line.concat("STR R0 R1 1");
+    		line = line +"STR R0 R1 1";
     	}
     	return line;
     }
     
     public static String generateMemoryUnderflow(Random rg) {
     	String line = new String();
-    	line.concat("MOV R0 "+(maxMemory*-1)+"%n");
-    	line.concat("MOV R1 1 %n");
+    	line = line +"MOV R0 "+(maxMemory*-1)+"\n";
+    	line = line +"MOV R1 1 \n";
     	if(rg.nextBoolean()) {
-    		line.concat("LDR R0 R1 -1");
+    		line = line+"LDR R0 R1 -1";
     	} else {
-    		line.concat("STR R0 R1 -1");
+    		line = line+"STR R0 R1 -1";
     	}
-    	System.out.println("line: "+line);
     	return line;
     }
     
@@ -85,109 +85,109 @@ public class Fuzzer {
     		case(0):
     			goodRegA = rg.nextInt(maxRegistry);
     			goodRegB = rg.nextInt(maxRegistry);
-    			line.concat("ADD ");
+    			line = line +"ADD ";
     			pos = rg.nextInt(3);
     			
     			switch(pos) {
     				case(0):
-    					line.concat("R"+invalidRegistry+" R"+goodRegA+" R"+goodRegB);
+    					line = line +"R"+invalidRegistry+" R"+goodRegA+" R"+goodRegB;
     					break;
     				case(1):
-    					line.concat("R"+goodRegA+" R"+invalidRegistry+" R"+goodRegB);
+    					line = line +"R"+goodRegA+" R"+invalidRegistry+" R"+goodRegB;
     					break;
     				case(2):
-    					line.concat("R"+goodRegB+" R"+goodRegA+" R"+invalidRegistry);
+    					line = line +"R"+goodRegB+" R"+goodRegA+" R"+invalidRegistry;
     					break;
     			}
     			return line;
     		case(1):
     			goodRegA = rg.nextInt(maxRegistry);
     			goodRegB = rg.nextInt(maxRegistry);
-    			line.concat("SUB ");
+    			line = line +"SUB ";
     			pos = rg.nextInt(3);
     			
     			switch(pos) {
     				case(0):
-    					line.concat("R"+invalidRegistry+" R"+goodRegA+" R"+goodRegB);
+    					line = line +"R"+invalidRegistry+" R"+goodRegA+" R"+goodRegB;
     					break;
     				case(1):
-    					line.concat("R"+goodRegA+" R"+invalidRegistry+" R"+goodRegB);
+    					line = line +"R"+goodRegA+" R"+invalidRegistry+" R"+goodRegB;
     					break;
     				case(2):
-    					line.concat("R"+goodRegB+" R"+goodRegA+" R"+invalidRegistry);
+    					line = line +"R"+goodRegB+" R"+goodRegA+" R"+invalidRegistry;
     					break;
     			}
     			return line;
     		case(2):
     			goodRegA = rg.nextInt(maxRegistry);
     			goodRegB = rg.nextInt(maxRegistry);
-    			line.concat("MOV R"+goodRegB+" 1%n");
-    			line.concat("DIV ");
+    			line = line +"MOV R"+goodRegB+" 1\n";
+    			line = line +"DIV ";
     			pos = rg.nextInt(3);
     			
     			switch(pos) {
     				case(0):
-    					line.concat("R"+invalidRegistry+" R"+goodRegA+" R"+goodRegB);
+    					line = line +"R"+invalidRegistry+" R"+goodRegA+" R"+goodRegB;
     					break;
     				case(1):
-    					line.concat("R"+goodRegA+" R"+invalidRegistry+" R"+goodRegB);
+    					line = line +"R"+goodRegA+" R"+invalidRegistry+" R"+goodRegB;
     					break;
     				case(2):
-    					line.concat("R"+goodRegB+" R"+goodRegA+" R"+invalidRegistry);
+    					line = line +"R"+goodRegB+" R"+goodRegA+" R"+invalidRegistry;
     					break;
     			}
     			return line;
     		case(3):
     			goodRegA = rg.nextInt(maxRegistry);
     			goodRegB = rg.nextInt(maxRegistry);
-    			line.concat("MUL ");
+    			line = line +"MUL ";
     			pos = rg.nextInt(3);
     			
     			switch(pos) {
     				case(0):
-    					line.concat("R"+invalidRegistry+" R"+goodRegA+" R"+goodRegB);
+    					line = line +"R"+invalidRegistry+" R"+goodRegA+" R"+goodRegB;
     					break;
     				case(1):
-    					line.concat("R"+goodRegA+" R"+invalidRegistry+" R"+goodRegB);
+    					line = line +"R"+goodRegA+" R"+invalidRegistry+" R"+goodRegB;
     					break;
     				case(2):
-    					line.concat("R"+goodRegB+" R"+goodRegA+" R"+invalidRegistry);
+    					line = line +"R"+goodRegB+" R"+goodRegA+" R"+invalidRegistry;
     					break;
     			}
     			return line;
     		case(4):
-    			line.concat("LDR ");
+    			line = line +"LDR ";
     			goodRegA = rg.nextInt(maxRegistry);
     			pos = rg.nextInt(2);
     			val = rg.nextInt(maxMemory);
     			switch(pos) {
 				case(0):
-					line.concat("R"+invalidRegistry+" "+val+"R"+goodRegA);
+					line = line +"R"+invalidRegistry+" "+val+"R"+goodRegA;
 					break;
 				case(1):
-					line.concat("R"+goodRegA+" "+val+"R"+invalidRegistry);
+					line = line +"R"+goodRegA+" "+val+"R"+invalidRegistry;
 					break;
     			}
     			return line;
     		case(5):
-    			line.concat("STR ");
+    			line = line +"STR ";
 				goodRegA = rg.nextInt(maxRegistry);
 				pos = rg.nextInt(2);
 				val = rg.nextInt(maxMemory);
 				switch(pos) {
 				case(0):
-					line.concat("R"+invalidRegistry+" "+val+"R"+goodRegA);
+					line = line +"R"+invalidRegistry+" "+val+"R"+goodRegA;
 					break;
 				case(1):
-					line.concat("R"+goodRegA+" "+val+"R"+invalidRegistry);
+					line = line +"R"+goodRegA+" "+val+"R"+invalidRegistry;
 					break;
 				}
 				return line;
     		case(6):
-    			line.concat("MOV ");
+    			line = line +"MOV ";
     			goodRegA = rg.nextInt(maxRegistry);
     			val = rg.nextInt(maxMemory);
-    			line.concat("R"+invalidRegistry+" "+val);
+    			line = line +"R"+invalidRegistry+" "+val;
     			return line;
     	}	
     	return line;
@@ -197,38 +197,38 @@ public class Fuzzer {
     	String line = new String();
     	Boolean positive = rg.nextBoolean();
     	if(!positive) {
-        line.concat("MOV R0 -70000");	
+        line = line +"MOV R0 -70000";	
     	}else {
-    	line.concat("MOV R0 70000");
+    	line = line +"MOV R0 70000";
     	}
     	return line;
     }
     
     public static String generateLineOverFlow() {
     	String line = new String();
-    	line.concat("RET R0");
+    	line = line +"RET R0";
     	for(int x=0;x<2000;x++) {
-    		line.concat("a");
+    		line = line +"a";
     	}
     	return line;
     }
     
     public static String generateInstructionOverflow() {
     	String line = new String();
-    	line.concat("MOV R0 0%n");
-    	line.concat("MOV R1 1");
+    	line = line +"MOV R0 0\n";
+    	line = line +"MOV R1 1";
     	for(int x=0;x<70000;x++) {
-    		line.concat("%nADD R0 R0 R1");
+    		line = line +"\nADD R0 R0 R1";
     	}
     	return line;
     }
     
     public static String generateDivideByZero(){
     	String line = new String();
-    	line.concat("MOV R0 0%n");
-    	line.concat("MOV R1 1%n");
-    	line.concat("DIV R2 R1 R0%n");
-    	line.concat("RET R2");
+    	line = line +"MOV R0 0\n";
+    	line = line +"MOV R1 1\n";
+    	line = line +"DIV R2 R1 R0\n";
+    	line = line +"RET R2";
     	return line;
     }
     
@@ -236,23 +236,23 @@ public class Fuzzer {
     	String line = new String();
 
     	for(int x=1;x<maxRegistry-1;x++) {   
-    		line.concat("ADD R0 R0 R"+x+"%n");
+    		line = line +"ADD R0 R0 R"+x+"\n";
     	}
-    	line.concat("RET R0");
+    	line = line +"RET R0";
     	return line;
     }
     
     public static String generateDirtyMemoryRead(Random rg) {
     	String line = new String();
     	int attempts = 20;
-    	line.concat("MOV R0 0");
+    	line = line +"MOV R0 0";
     	for(int x=0;x<attempts;x++) {   
     		int value = rg.nextInt(maxMemory);
     		if(rg.nextBoolean()) {
     			value = value*-1;
     		}
-    		line.concat("%nLDR R0 "+value+" R1%n");
-    		line.concat("ADD R2 R2 R1%n");
+    		line = line +"\nLDR R0 "+value+" R1\n";
+    		line = line +"ADD R2 R2 R1\n";
     	}
     	return line;
     }
@@ -265,7 +265,7 @@ public class Fuzzer {
     	} else {
     		val = (programLength-lineNumber+1);
     	}
-    	line.concat("JMP "+val);
+    	line = line +"JMP "+val;
     	return line;
     }
     
@@ -278,24 +278,24 @@ public class Fuzzer {
     	} else {
     		val = (programLength-lineNumber+2);
     	}
-    	line.concat("MOV R0 0%n");
-    	line.concat("JZ R0 "+val);
+    	line = line +"MOV R0 0\n";
+    	line = line +"JZ R0 "+val;
     	return line;
     }
     
     public static String intOverflow() {
     	String line = new String();
-    	line.concat("MOV R0 65535%n");
-    	line.concat("MUL R1 R0 R0%n");
-    	line.concat("MUL R1 R0 R0");
+    	line = line +"MOV R0 65535\n";
+    	line = line +"MUL R1 R0 R0\n";
+    	line = line +"MUL R1 R0 R0";
     	return line;
     }
     
     public static String intUnderflow() {
     	String line = new String();
-    	line.concat("MOV R0 -65535%n");
-    	line.concat("MUL R1 R0 R0%n");
-    	line.concat("MUL R1 R0 R0");
+    	line = line +"MOV R0 -65535\n";
+    	line = line +"MUL R1 R0 R0\n";
+    	line = line +"MUL R1 R0 R0";
     	return line;
     }
     
@@ -305,51 +305,54 @@ public class Fuzzer {
     	Boolean hasval = rg.nextBoolean();
     	int index = rg.nextInt(validOpcodes.size());
         String opcode = validOpcodes.get(index);
-        line.concat(opcode);
+        line = line +opcode;
         for(int x=0;x<regs;x++) {
         	int register = rg.nextInt(maxRegistry);
-        	line.concat(" R"+register);
+        	line = line +" R"+register;
         }
         if(hasval) {
         	int value=rg.nextInt(maxMemory);
-        	line.concat(" "+value);
+        	line = line +" "+value;
         }
 
     	//too many arguments
-    	return null;
+    	return line;
     }
     
     public static String generateInvalidFunctionName(Random rg,String line) {
     	char[] charLine = line.toCharArray();
+    	System.out.println("line"+line);
     	int change = rg.nextInt(3)+1;
+    	System.out.println("change"+change);
     	for(int x=0;x<change;x++) {
     		int index = rg.nextInt(charLine.length);
     		char character = alphabet.charAt(rg.nextInt(alphabet.length()));
+    		System.out.println("char at:"+x+" is "+character);
     		charLine[index] = character;
     	}
     			
-    	return charLine.toString();
+    	return new String(charLine);
     }
 
     public static String generateInstructionComment(Random rg) {
     	String line = new String();
-    	line.concat(";");
+    	line = line +";";
     	String instr = generateValidReturn(rg);
-    	line.concat(instr);
+    	line = line +instr;
     	return line;
     }
     
     public static String generateValidReturn(Random rg) {
     	String line = new String();
-    	line.concat("RET");
-    	line.concat(" R"+rg.nextInt(maxRegistry));
+    	line = line +"RET";
+    	line = line +" R"+rg.nextInt(maxRegistry);
     	return line;
     }
     
     public static String generateInvalidReturn(Random rg) {
     	int invalidRegistry;
     	String line = new String();
-    	line.concat("RET");
+    	line = line +"RET";
     	Boolean overflow = rg.nextBoolean();
     	if(overflow) {
     		invalidRegistry = 32;
@@ -358,7 +361,7 @@ public class Fuzzer {
     		invalidRegistry = -1;
     	}
     	
-    	line.concat(" R"+invalidRegistry);
+    	line = line +" R"+invalidRegistry;
     	return line;
     }
     
@@ -388,10 +391,10 @@ public class Fuzzer {
             case("STR"):
                 //special case - form <REGISTER VALUE REGISTER>
             	offset = (rg.nextInt(2*maxMemory))-maxMemory;
-            	line.concat(opcode);
-                line.concat(" R"+rg.nextInt(maxRegistry));
-                line.concat(" "+offset);
-                line.concat(" R"+rg.nextInt(maxRegistry));
+            	line = line +opcode;
+                line = line +" R"+rg.nextInt(maxRegistry);
+                line = line +" "+offset;
+                line = line +" R"+rg.nextInt(maxRegistry);
                 return line;
             case("MOV"):
                 numregs = 1;
@@ -408,7 +411,7 @@ public class Fuzzer {
             	offset = offset - lineNumber;
             	if(offset<0) {
             		offset = offset-1;
-            		line.concat("JMP 2%n");
+            		line = line +"JMP 2\n";
             	} else if(offset == 0) {
             		offset = offset+1;
             	}
@@ -421,19 +424,19 @@ public class Fuzzer {
         		offset = offset - lineNumber;
         		if(offset<0) {
         			offset = offset-2;
-        			line.concat("JMP 2%n");
+        			line = line +"JMP 2\n";
         		} else if(offset == 0) {
         			offset = offset+1;
         		}
                 break;
         }
-        line.concat(opcode);
+        line = line +opcode;
         int x;
         for(x=0;x<numregs;x++){
-        	line.concat(" R"+rg.nextInt(maxRegistry));
+        	line = line +" R"+rg.nextInt(maxRegistry);
         }
         if(offset!=null){
-            line.concat(" "+offset);
+            line = line +" "+offset;
         }
         return line;
     }