Code cleanup and improvements
Chaining support
Fixed streaming support
Updated README
Use .end() to know when end can be fired
Updates based on API simplification