Broke renderers out into separate files, added some performance improvements.