Seems that SCMStep can indeed be simplified considerably.
newInstance should now be expecting the actual param name, not value.