s: separate the iteration strategy