Revert "Iterator Pattern continued..not finished however"

This reverts commit ca54daedd0cb870be6c5f4e7fd49c47bd7f9ed9e.
Revert "Revert "Iterator Pattern continued..not finished however""

This reverts commit 369302c13fc71a3ba3730ccbbb4174ab2bc1ea07.
Merge remote-tracking branch 'origin/master'