Separated renderer implementation into a dependency to allow for multiple renderers