reworking renderer