if (curr.isPresent()) {
final boolean inCargo = pm.containerContains(this, curr.get());
// sanity check: if it is not in our cargo AND it is also not on the
// RoadModel, we cannot go to curr anymore.
if (!inCargo && !rm.containsObject(curr.get())) {
curr = Optional.absent();
} else if (inCargo) {
// if it is in cargo, go to its destination
rm.moveTo(this, curr.get().getDestination(), time);
if (rm.getPosition(this).equals(curr.get().getDestination())) {