@Override
    public String toString() {
        StringBuilder sb = new StringBuilder(super.toString());
        sb.append("\nTransport list:\n");
        List<Transportable> carrying = new ArrayList<Transportable>();
        List<Transportable> carried = new ArrayList<Transportable>();
        for (Transportable t : transportables) {
            Locatable l = t.getTransportLocatable();
            Location target;
            if (l == null) {
                sb.append(t.getId() + " NULL\n");
                continue;
            } else if (carried.contains(t)) {
                sb.append(l.toString() + " DUPLICATED\n");
                continue;
            } else if (carrying.contains(t) || isCarrying(t)) {
                sb.append(l.toString());
                sb.append(" (to ");
                target = t.getTransportDestination();
                carrying.remove(t);
                carried.add(t);
            } else {
                sb.append(l.toString());
                sb.append(" (from ");
                target = t.getTransportSource();
                carrying.add(t);
            }
            if (target == null) {
                sb.append("null");
            } else if (target instanceof Europe) {
                sb.append("Europe");
            } else {
                sb.append(target.toString());
            }
            sb.append(")\n");
        }
        return sb.toString();
    }