=str #16151 add tests adn dont leak internal types in Sink/Source

Just the test and hiding of internal types for now.

To follow: 
* use type params?
* fix `runWith` missing method problem in this PR as well as its very connected