refactor

some refactoring

- you only want the writable portion of the stream to be in object mode, not both
- i despise creating closures on every function call, so i refactored them out