@Override
	public boolean pickAndExecuteAnAction() {
		synchronized(binList){
			for (Bin bin : binList) {
				if (bin.binState == BinStatus.PENDING) {
					addBinToGraphics(bin);
					return true;
				}
			}
		}
		for (MyFeeder currentFeeder : feeders) {
			if (currentFeeder.state == FeederStatus.REQUESTED_PARTS) {
				for (Bin bin : binList) {
					if (bin.part.type.equals(currentFeeder.getRequestedType()) && bin.binState == BinStatus.FULL) {
						moveToFeeder(bin, currentFeeder);
						return true;
					}
				}
			}
		}

		for (Bin bin : binList) {
			if (bin.binState == BinStatus.DISCARDING) {
				discardBin(bin);
				return true;
			}
		}
		return false;
	}