this loop could be clearer and safer if we iterate from 0 to callbackCollection.length