add downgrade and downgrade_single_step subs (untested)
most of the Downgrade work in place though with bugs