Inital switch to promises
Added async_gen
Make into promises
changes
full promises implementation
Moved async into original