Stream Compilers

Decided to go with a stream interface from the get-go, since it would be
easier than trying to implement it the other way then reimplement the
streams.