public void pushTasset() {
		int len = this.tassetMaintQueue.size();
		Tasset t;
		// Flush out the maintenance queue, move ready tassets to free queue
		for (int i=0; i<len; i++) {
			t = this.tassetMaintQueue.remove(0);
			if (t.getDelay() > 0)
				t.setDelay(t.getDelay() - 1);
			// If the maintenance delay expires, move the tasset to the free queue
			if (t.getDelay() < 1)
				tassetFreeQueue.add(t);
			// If maintenance continues, put the tasset back in the maint queue
			else
				tassetMaintQueue.add(t);
		}
		// Flush out the in-use queue
		len = tassetInUseQueue.size();
		for (int i=0; i<len; i++) {
			t = tassetInUseQueue.remove(0);
			if (t.getDelay() > 0)
				t.setDelay(t.getDelay() - 1);
			// If transportation delay expires, tasset reached a destination
			if (t.getDelay() < 1) {
				// See if the load arrived at its destination. Tassets only run
				// between adjacent nodes, so if the destination ID is not this
				// node's ID that means the load reached the distant node.
				if (t.getDst() != this.id) {
					Node n = getNode(t.getDst());
					// Tassets can have multiple (requisition) payloads for 
					// future use. Currently, we assume only one load, so we 
					// add it to the destination node's inQueue.
					n.inQueue.add(t.getPayload().remove(0));
					// Return the tasset to base (this node)
					t.setSrc(t.getDst());
					t.setDst(this.id);
					t.setDelay(Util.getTransDelay(t.getSrc(), t.getDst()));
					tassetInUseQueue.add(t);
				}
				// Otherwise, the tasset returned to base so send to maintenance
				else {
					t.setDelay(Util.getMaintDelay());
					tassetMaintQueue.add(t);
				}
			}
			// Otherwise put the tasset back in the queue
			else {
				tassetInUseQueue.add(t);
			}
		}
		// Source new delivery missions while we have both free tassets and 
		// outbound requisitions
		while (tassetFreeQueue.size() > 0 && outQueue.size() > 0) {
			t = tassetFreeQueue.remove(0);
			Requisition r = outQueue.remove(0);
			t.setSrc(this.id);
			t.setDst(r.popNode());
			t.addPaylod(r);
			t.setDelay(Util.getTransDelay(t.getSrc(), t.getDst()));
			tassetInUseQueue.add(t);
		}
	}