code: function composeFunction(flist) {
      if (flist.length === 0) return function identity(data) { return VOW.kept(data); };
      else if (flist.length === 1) return flist[0];
      else if (flist.length === 2) return function(data) {
          return flist[0](data).when(
              flist[1]
          );
              
      };
      else if (flist.length === 3) return function(data) {
          return flist[0](data).when(
              flist[1]
          ).when(
              flist[2]
          );
              
      };
      else if (flist.length === 4) return function(data) {
          return flist[0](data).when(
              flist[1]
          ).when(
              flist[2]
          ).when(
              flist[3]
          );
      };
      return function() {
          return VOW.broken("Can't have more than four passes!!!. Shouldn't happen!!!");   
      };
      
      //needs debugging:
      return function(data) {
          function chain(p1, p2) {
              return p1.when(p2);
          }
          if (flist.length === 0) return VOW.kept(data); 
          var promise = flist[0](data);
          var i = 0;
          var max = flist.length -1; 
          while (i<max) promise = chain(promise, flist[i+1]);
          return promise;
      };
      
  }
docs: function isRecastable(ext) { return extToFunction[ext] ? true : false; }