refactor renderers
implement endRenderer