var i = -1;

    while (++i < self.onInitCompleteListeners.length) {
        process.nextTick(self.onInitCompleteListeners[i]);
    }

the way it's currently written can get very slow if you have a lot of liseners