sometimes, require('micropromise') works better?