Will switch to Streams after merging this PR for consistency