split new module StreamDecoder from StreamLexer and flesh out former