add text
add Iterator interface