refactored GPU/CPU renderers

this is in no way backwards compatible!