text iteration