further refactoring to support rendering the same object at multiple steps