public boolean forward() {
		Integer opcode = this.getOpcodeValue(); //Get opcode value from superclass to pass to queue
		try {
			getPC().incrementPC();//For testing, as wait() statements are removed, this needs to be placed after queue.put()
									//in order to prevent missing branch targets.
			this.fireUpdate("> PC incremented by 1 (ready for next instruction fetch) \n");
			
			this.fireUpdate("> Waiting for Ex. Stage to take instruction " + getIR().read(0) + ".\n");
			
			//Waits here until put is successful (executeStage thread must be attempting take()).
			fetchToExecuteQueue.put(getIR().read(0)); 
			
			getIR().clear(0); //Rest IR index 0
			
			//Don't attempt to fetch another instruction after HALT fetched. Execute stage won't send signal in time.
			if (opcode == 13) {
				return false;
			}
			return true;
		} catch (InterruptedException e) {
			//e.printStackTrace();
			setActive(false);
			return false;
		}
	}