First pass at the design for streams

@laurent-muchacho would you mind taking a look?