public Direction mapRelativeTo(Direction d) {
    Direction rotation = South.i();
    Direction slot = South.i();

    while (!rotation.equals(d)) {
      slot = slot.clockwise();
      rotation = rotation.clockwise();
    }

    Direction humanOffset = humanBase;
    while (!humanOffset.equals(South.i())) {
      slot = slot.clockwise();
      humanOffset = humanOffset.clockwise();
    }
    return slot;
  }