big refactor of Renderer into a singleton instead of static