code: function step(name) {
              var flow, dependencies, nodeFactory;
  
              flow = this;
              dependencies = [];
              
              nodeFactory = function nodeFactory(code, errorCode) {
                  var node = new FlowNode({
                      name : name,
                      code : code,
                      errorCode : errorCode,
                      dependencies : dependencies
                  });
  
                  flow.appendChild(node);
  
                  dependencies.forEach(function dependenciesIterator(dependencyName) {
                      flow.bind(dependencyName, function () {
                          flow.runNode(node);
                      });
                  });
  
                  flow.runNode(node);
              };
  
              nodeFactory.dependsOn = function dependsOn() {
                  dependencies = Array.prototype.slice.call(arguments, 0);
                  return nodeFactory;
              };
  
              return nodeFactory;
  
  
          }
docs: Define a step in the flow. this is a dsl like starter because returs functions.
  flowInstance.step('name')(function (step) {...});
  @property step <public> [Function]
  @argument name <required> [String]
  @return Function a closure to the created step that you can use either to finish the step
  creation or define more metadata.