diff --git a/wk1/java/src/jrr1g18/ecsnames/ECSNames.java b/java/src/jrr1g18/ecsnames/ECSNames.java
similarity index 100%
rename from wk1/java/src/jrr1g18/ecsnames/ECSNames.java
rename to java/src/jrr1g18/ecsnames/ECSNames.java
diff --git a/wk1/names.sh b/names.sh
similarity index 100%
rename from wk1/names.sh
rename to names.sh
diff --git a/wk2/Java/counting.bb b/wk2/Java/counting.bb
deleted file mode 100644
index 7c0ee2323b5ab0fcae6e378a910eef855a214961..0000000000000000000000000000000000000000
--- a/wk2/Java/counting.bb
+++ /dev/null
@@ -1,7 +0,0 @@
-clear X;
-incr X;
-incr X;
-incr X;
-while X not 0 do;
-   decr X;
-end;
diff --git a/wk2/Java/multiply.bb b/wk2/Java/multiply.bb
deleted file mode 100644
index 2ab092c4c8491b6a9a22fcf059414a047b650c43..0000000000000000000000000000000000000000
--- a/wk2/Java/multiply.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-clear X;
-incr X;
-incr X;
-clear Y;
-incr Y;
-incr Y;
-incr Y;
-clear Z;
-while X not 0 do;
-   clear W;
-   while Y not 0 do;
-      incr Z;
-      incr W;
-      decr Y;
-   end;
-   while W not 0 do;
-      incr Y;
-      decr W;
-   end;
-   decr X;
-end;
diff --git a/wk2/Java/negative.bb b/wk2/Java/negative.bb
deleted file mode 100644
index 1522cde1839f15fa58410cccdbc477a11936ac42..0000000000000000000000000000000000000000
--- a/wk2/Java/negative.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-clear x;
-decr x;
\ No newline at end of file
diff --git a/wk2/Java/src/jrr1g18/bb/Interpreter.java b/wk2/Java/src/jrr1g18/bb/Interpreter.java
deleted file mode 100644
index 871072be8c9d091bc5fd48539055593218c6f55d..0000000000000000000000000000000000000000
--- a/wk2/Java/src/jrr1g18/bb/Interpreter.java
+++ /dev/null
@@ -1,262 +0,0 @@
-package jrr1g18.bb;
-
-import java.io.BufferedReader;
-import java.io.FileNotFoundException;
-import java.io.FileReader;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Objects;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-public class Interpreter {
-    private Map<String, Integer> m_vars = new HashMap<>();
-    private List<String> m_code = new ArrayList<>();
-    private Map<Integer, Integer> m_whiles = new HashMap<>();
-    private int m_lineCount = 0;
-    private int m_whileDepth = 0;
-
-    private final String m_filename;
-
-    private static final Map<InstructionType, String> INSTRUCTION_NAMES;
-
-    static {
-	Map<InstructionType, String> tempMap = new HashMap<>();
-	tempMap.put(InstructionType.CLEAR, "clear");
-	tempMap.put(InstructionType.DECR, "decr");
-	tempMap.put(InstructionType.INCR, "incr");
-	tempMap.put(InstructionType.WHILE, "while");
-	tempMap.put(InstructionType.END, "end;");
-	INSTRUCTION_NAMES = Collections.unmodifiableMap(tempMap);
-    }
-
-    private enum InstructionType {
-	INCR, DECR, CLEAR, WHILE, END,
-    }
-
-    private static InstructionType stringToInstructionType(String instruction) {
-	for(Entry<InstructionType, String> entry : INSTRUCTION_NAMES
-		.entrySet()) {
-	    if(Objects.equals(instruction, entry.getValue())) {
-		return entry.getKey();
-	    }
-	}
-	return null;
-    }
-
-    private static String getVarFromLine(String line) {
-	Matcher m =
-		Pattern.compile("(?<=incr|clear|decr)(.+)(?=;)").matcher(line);
-	if(!m.find()) {
-	    System.err.println(line);
-	    System.exit(1);
-	}
-	return stripWhitespace(m.group(1));
-    }
-
-    public Interpreter(String fileName) {
-	m_filename = fileName;
-    }
-
-    public void run() {
-	readCode();
-	validateCode();
-	exec();
-    }
-
-    public String variablesToString() {
-	return m_vars.toString();
-    }
-
-    private String getLine(int line) {
-	return m_code.get(line);
-    }
-
-    private static String[] splitLine(String line) {
-	return stripWhitespace(line).split("\\s+");
-    }
-
-    public static String stripWhitespace(String str) {
-	return str.replaceAll("(^\\s+|\\s+$)", "");
-    }
-
-    private String[] getSplitLine(int line) {
-	return splitLine(getLine(line));
-    }
-
-    private boolean isVariableNull(String name) {
-	return m_vars.get(name) == null;
-    }
-
-    private void validateCode() {
-	String line;
-	String[] splitLine;
-	int whileDepth = 0;
-
-	for(int idx = 0; idx < m_lineCount; ++idx) {
-	    line = stripWhitespace(getLine(idx));
-	    splitLine = splitLine(line);
-
-	    if(line.equals("")) {
-		continue;
-	    }
-	    if(!line.matches(".*;$")) {
-		System.err.println("missing ; on line " + (idx + 1));
-		System.exit(1);
-	    }
-
-	    if(!splitLine[0].equals("incr") && !splitLine[0].equals("decr")
-		    && !splitLine[0].equals("end;")
-		    && !splitLine[0].equals("clear")
-		    && !splitLine[0].equals("while")) {
-		System.err.println("Syntax error on line " + (idx + 1));
-		System.exit(1);
-
-	    }
-
-	    InstructionType instruction = stringToInstructionType(splitLine[0]);
-	    if((instruction == InstructionType.CLEAR
-		    || instruction == InstructionType.DECR
-		    || instruction == InstructionType.INCR)
-		    && splitLine.length > 2) {
-		System.err.println("Too many arguments on line " + (idx + 1));
-		System.exit(1);
-	    }
-
-	    switch (instruction) {
-	    case WHILE:
-		whileDepth++;
-		if(!splitLine[2].equals("not") || splitLine.length > 5) {
-		    System.err.println("Syntax error on line " + (idx + 1));
-		    System.exit(1);
-		}
-		break;
-	    case END:
-		whileDepth--;
-		if(splitLine.length > 1) {
-		    System.err.println("Syntax error on line " + (idx + 1));
-		    System.exit(1);
-		}
-		break;
-	    default:
-		break;
-	    }
-
-	}
-
-	if(whileDepth > 0) {
-	    System.err.println("Syntax error: unclosed while");
-	} else if(whileDepth < 0) {
-	    System.err.println("Syntax error: overclosed while");
-	}
-    }
-
-    private void readCode() {
-	try(BufferedReader reader =
-		new BufferedReader(new FileReader(m_filename))) {
-	    String line;
-	    while((line = reader.readLine()) != null) {
-		m_code.add(line);
-		m_lineCount++;
-	    }
-	} catch(FileNotFoundException e) {
-	    e.printStackTrace();
-	} catch(IOException e) {
-	    e.printStackTrace();
-	}
-    }
-
-    private void exec() {
-	String[] splitLine;
-
-	for(int idx = 0; idx < m_lineCount; ++idx) {
-	    splitLine = getSplitLine(idx);
-	    InstructionType instruction = stringToInstructionType(splitLine[0]);
-	    switch (instruction) {
-	    case WHILE:
-	    case END:
-		idx = loop(idx, splitLine);
-		continue;
-	    default:
-		break;
-	    }
-	    String var = getVarFromLine(getLine(idx));
-	    switch (instruction) {
-	    case CLEAR:
-		clear(var);
-		break;
-	    case INCR:
-		incr(var);
-		break;
-	    case DECR:
-		decr(var);
-		break;
-	    default:
-		break;
-	    }
-	}
-    }
-
-    private void incr(String name) {
-	if(isVariableNull(name)) {
-	    System.err.println("Error: Variable " + name + " doesn't exist");
-	    System.exit(1);
-	} else {
-	    m_vars.put(name, m_vars.get(name) + 1);
-	}
-    }
-
-    private void decr(String name) {
-	if(isVariableNull(name)) {
-	    System.err.println("Error: Variable " + name + " doesn't exist");
-	    System.exit(1);
-	} else if(m_vars.get(name) == 0) {
-//	    System.err
-//		    .println("Error: Variable " + name + " cannot be negative");
-//	    System.exit(1);
-	    m_vars.put(name, Integer.MAX_VALUE);
-	} else {
-	    m_vars.put(name, m_vars.get(name) - 1);
-	}
-    }
-
-    private void clear(String name) {
-	m_vars.put(name, 0);
-    }
-
-    private int loop(int idx, String[] splitLine) {
-	String line;
-	if(splitLine[0].equals("while")) {
-	    m_whileDepth++;
-	    m_whiles.put(m_whileDepth, idx);
-
-	    int condition = Integer.parseInt(splitLine[3]);
-	    if(isVariableNull(splitLine[1])
-		    && m_vars.get(splitLine[1]) == condition) {
-		while(!splitLine[0].equals("end;")) {
-		    idx++;
-		    line = getLine(idx);
-		    splitLine = splitLine(line);
-		}
-	    }
-	} else {
-	    line = m_code.get(m_whiles.get(m_whileDepth));
-	    splitLine = splitLine(line);
-	    int condition = Integer.parseInt(splitLine[3]);
-
-	    if(m_vars.get(splitLine[1]) != condition)
-		idx = m_whiles.get(m_whileDepth);
-	    else {
-		m_whileDepth--;
-	    }
-
-	}
-	return idx;
-    }
-
-}
diff --git a/wk2/Java/src/jrr1g18/bb/Main.java b/wk2/Java/src/jrr1g18/bb/Main.java
deleted file mode 100644
index 7d3d9c8af199892ea9b02e2a466d670cc9405644..0000000000000000000000000000000000000000
--- a/wk2/Java/src/jrr1g18/bb/Main.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package jrr1g18.bb;
-
-public class Main {
-
-    public static void main(String[] args) {
-	Interpreter interpreter = new Interpreter("negative.bb");
-	interpreter.run();
-	System.out.println(interpreter.variablesToString());
-    }
-
-}