I am doing a larger refactoring of this class, just was pushing where I had got to. I am going to rework the way these two methods interact - for example we iterate through the edge gateway services twice, once here and once in the diff method. 

I agree it is best not to set a counter and iterate it - I think the refactor will remove the need for that, but if not then I will take your suggestion, thank you.