public synchronized void load(String filename) {
		System.out.println("load");
		try {
			clear();
			this.workspace = HeadlessWorkspace.newInstance();
			this.workspace.open(filename);

			BufferedReader in = new BufferedReader(new FileReader(filename));
			String line;
			while ((line = in.readLine()) != null) {
				if (line.startsWith("SLIDER")) {
					initSlider(in);
				} else if (line.startsWith("SWITCH")) {
					initSwitch(in);
				} else if (line.startsWith("PLOT")) {
					initPlot(in);
				}
				// monitor here
				else if(line.startsWith("MONITOR")){
					initMonitor(in);
				}
			}
			
			/*
			 * TESTCODE:Add a background selector to only Bug Hunt Camouflage
			 */
			
			initBackroundSelector();
			
			
			
			
			in.close();

			this.loaded = true;

			/*
			 * Get all procedures and see if there is a "to touch-down". If there isn't, set
			 * as not touchable
			 */

			Map<String,Procedure> modelProcedures = this.workspace.getProcedures();
			hasTouchDown = modelProcedures.containsKey("TOUCH-DOWN");
			hasTouchUp = modelProcedures.containsKey("TOUCH-UP");
			hasTouchDrag = modelProcedures.containsKey("TOUCH-DRAG");
			
			System.out.println(this.name + " : down: " + hasTouchDown + ", up: " + hasTouchUp + ", drag: " + hasTouchDrag);



		} catch (Exception x) {
			x.printStackTrace();
		}

	}