use parameterized "when" function for Promise
catch initialization errors in mdo contexts