exports = module.exports = function(IoC, store, logger) {
  var flowstate = require('flowstate');
  
  
  var dispatcher = new flowstate.Manager(store);
  
  return Promise.resolve(dispatcher)
    .then(function(dispatcher) {
      var components = IoC.components('http://i.bixbyjs.org/http/state/Prompt');
    
      return Promise.all(components.map(function(comp) { return comp.create(); } ))
        .then(function(prompts) {
          prompts.forEach(function(prompt, i) {
            var name = components[i].a['@name'];
            logger.info('Loaded HTTP prompt: ' + name);
            dispatcher.use(name, prompt.begin, prompt.resume);
          });
        })
        .then(function() {
          return dispatcher;
        });
    })
    .then(function(dispatcher) {
      return dispatcher;
    });
};

exports['@singleton'] = true;
exports['@require'] = [
  '!container',
  'http://i.bixbyjs.org/http/state/Store',
  'http://i.bixbyjs.org/Logger'
];

@@ -768,24 +768,668 @@
 spatcher) %7B%0A
+      var components = IoC.components('http://i.bixbyjs.org/http/state/yielder');%0A    %0A      return Promise.all(components.map(function(comp) %7B return comp.create(); %7D ))%0A        .then(function(yielders) %7B%0A          yielders.forEach(function(yielder, i) %7B%0A            var resume = components%5Bi%5D.a%5B'@resume'%5D%0A              , result = components%5Bi%5D.a%5B'@result'%5D%0A            logger.info(%22Loaded HTTP yielder from '%22 + result + %22' to '%22 + resume +  %22'%22);%0A            dispatcher.transition(resume, result, yielder);%0A          %7D);%0A        %7D)%0A        .then(function() %7B%0A          return dispatcher;%0A        %7D);%0A    %7D)%0A    .then(function(dispatcher) %7B%0A
       return

Load yeilders.