the second iteration