refactor progress
refactor almost complete
fix promise
Thread safe call backs
tests pass
assume writes are queued

and only valid for the lifetime of a stream handle
all tests pass
Merge remote-tracking branch 'origin/refactor'