@Override
  public void moveObjectsOfPositionTo(
      ShortPoint2D position, AbstractMaterialRequestPriorityQueue newAbstractQueue) {
    assert newAbstractQueue instanceof MaterialsForBuildingsRequestPrioQueue
        : "can't move positions between diffrent types of queues.";

    MaterialsForBuildingsRequestPrioQueue newQueue =
        (MaterialsForBuildingsRequestPrioQueue) newAbstractQueue;
    final int numberOfBuildings = settings.getNumberOfBuildings();

    for (int prioIdx = 0; prioIdx < queues.length; prioIdx++) {
      DoubleLinkedList<MaterialRequestObject>[] prioQueue = queues[prioIdx];
      for (int queueIdx = 0; queueIdx < numberOfBuildings; queueIdx++) {
        Iterator<MaterialRequestObject> iter = prioQueue[queueIdx].iterator();
        while (iter.hasNext()) {
          MaterialRequestObject curr = iter.next();
          if (curr.getPos().equals(position)) {
            iter.remove();
            newQueue.queues[prioIdx][queueIdx].pushEnd(curr);
            curr.requestQueue = newQueue;
          }
        }
      }
    }
  }