iteration implemented #9 #12 #14