Handling for situations when async functions return multiple values (and some refactoring)
Refactoring
Fix for old v8/ECMAScript standard (e.g. node 0.11.2)
Promises returned from run