public boolean numericReceived(int num, String val, String msg) {
		synchronized (map) {
			boolean retval = false;
			String id = getID(num, val, msg);
			Container container;
			if (contains(starterNums, num) && !map.containsKey(id)) {
				container = new Container(id, getInitObject(id));
				map.put(id, container);
				retval = true;
			}
			if (contains(bodyNums, num) && (container = (Container)map.get(id)) != null) {
				handle(container.getObject(), num, val, msg);
				retval = true;
			}
			if (finalNum == num && (container = (Container)map.remove(id)) != null) {
				container.interrupt();
				tryFire(container.getObject());
				retval = true;
			}
			if (retval) {
				System.out.println("handled by: "+ this.toString());
				millis++;
			}
			return retval;
		}
	}