So about this... yes it works, but it's dangerous to encourage new programmers to write like this:
- yes the stat happens... eventually
- so yes the directory gets created... eventually
- but you're technically returning a store which can't work right away because that setup hasn't happened yet
- oh right, and if a stat error or mkdir error happened... all bets are off

Here's an alternative:
```javascript
function configureStore(callback) {
  var store = whatever();
  async.series([
    function(next) {
      fs.stat(stuff, function(err, stat) {
        if (err && err.code === "ENOENT") return fs.mkdir(stuff, next);
        next(err); // NOTE how this line handles both no-op and propagate unexpected error cases
      });
    },
    function(next) {
      fs.stat(otherStuff, /* ... as above ... you could actually refactor this whole lot using a [path, path2].map(path -> func) pattern */);
    }
  ], function(err) {
    if (err) return callback(err); // no store for you...
    callback(null, stare); // can haz store!
  });
}
```
It's more verbose, but this starts to scratch the surface of what's required to write real world systems in node.