Refactored IRenderer to work with StreamReader/Writer