removing confusing use of hoisting

Why do
```
var ...
return exports;
function for exports...
another function for exports...
```
Why put return statement in the middle?  This "hoisting hack" makes the code harder to read and will likely confuse beginners not familiar with the concept.  Unless there's some really good reason to nest the return statement between properties & methods it should not be thus.