code: function() {
  			debug('next hook');
  			var hook = global.requestSSLHooks[index++];
  			if (hook) {
  				debug('init hook',hook);
  				// if async
  				global.requestSSLInsideHook = true;
  				if (hook.length > 0) {
  					debug('calling a hook async');
  					hook(nextHook);
  					debug('after calling a hook async');
  				}
  				// else sync
  				else {
  					debug('calling a hook sync');
  					hook();
  					nextHook();
  					debug('after calling a hook sync');
  				}
  				global.requestSSLInsideHook = false;
  			}
  			else {
  				debug('init has no more hooks');
  				done();
  			}
  		}
docs: run our hooks until we're done and then run our initializer