update iterator protocol
update
regenerate output