generalized stepping and rendering, iteration. added more types