why do we need this renderer?