@Override
      public Value next() {
        Map.Entry<Value, Object> entry = iterator.next();
        current = entry.getKey();
        Value next = current;
        currentValue = entry.getValue();
        return unwrap(next);
      }
@Override
      public Value next()