iterate if necessary, expose say function