Added then() methods to base class, removed static classes.
Refactored Sink and Tap.