Refactored Streams. Added evenIfNotRetained option