renamed some templates for better extensibility; optional prev_op; don't rely on DOM hide for prev_op