Input streams

@mkristian any reason you don't want to just fix them now?  or are you talking about a larger refactoring?