update promise library, and export for standalone