Refactor Renderer implementation

-> Add tests
-> Use new concepts and structures