title: Async-WaterFall not working as expected
body: <p>waterfall function with two calls but the second on is not waiting for the first one to completely finish. The first one has a mongodb.find() call in it. 
  Here is the async-waterfall function </p>
  
  <pre><code>app.get("/news", function(req, res) {
      async.waterfall([
           function (callback) {
  
              var blogs = tendigiEngine.getAllBlogs(callback);
              callback(null, blogs);
            },
            function (blogs, callback) {
  
              var array = tendigiEngine.seperateBlogs(blogs, callback);
              callback(null, array );
            }
  
       ], function (err, result) {
         // result now equals 'done'   
         console.log("done"); 
         console.log(result);
      });
  
  });
  </code></pre>
  
  <p>Here are the two functions being called:
  getAllBlogs():</p>
  
  <pre><code>exports.getAllBlogs = function() {
  
      Blog.find(function(err, theBlogs){
          if(!err) {
              return theBlogs;
           }
          else {
                  throw err;
          }
  
        });
  }
  </code></pre>
  
  <p>seperateBlogs():</p>
  
  <pre><code>exports.seperateBlogs  = function(blogs) {
  
        if(blogs.length === 0 ) {
              return 0;
          }
          else {
               blogs.reverse();
               var blog  = blogs[0];
               blogs.shift(); 
               var finArray = [blog, blogs];
               return finArray;
          }
        console.log("asdf");
  }
  </code></pre>
  
  <p>It is important that seperateBlogs won't be called before getAllBlogs() has returned theBlogs, but it is being called before the value is returned. I used Async_Waterfall to avoid this problem but it keeps recurring, which means I am using it wrong. What am I doing wrong here and how can I fix it?</p>
  
  <p>Thanks!</p>