refactor render_states to account for multiple slide types, closes #596