sequencial iteration, prepare to abstract common pattern