require Promise constructor to be new'd