the POC was not finished. I do prefer the **iterator()** it let the possibility to augment a standard class like **String** w/ an **iterator** method to iterate on it.
```
augment java.lang.String {
  function iterator = |this | {
  let index = DynamicObject(): value(0)

  let conf = map[
    ["interfaces", ["java.util.Iterator"]],
    ["implements", map[
      ["hasNext", |it|  {
        return index: value() < this: toCharArray(): length()
        }],
      ["next", |it| {
        let result = this: toCharArray(): get(index: value())
        index: value(index : value() + 1)
        return result
      }],
      ["remove", |it|  {
        raise("UnsupportedMethod")
        }]
      ]
    ]
  ]
  return AdapterFabric(): maker(conf): newInstance()
  }
}

function spread_on_augmented_string = {
 return "Golo" *: charValue()
}
```