Refactoring rendering to only write the parts of the screen that have changed

Can you add `ScreenBuffer` to the `@param` list