rewritten render pipeline