simplify .then promise handling, noting that (x)->exp(x) is equivalent to exp once the function is bound to its 'this'; develop promise extensions: