finally came up with a good method for steping as an interator