refactoring plain & streamer