Refactored renderers to allow custom shader programs