Bug fixes

Various fixes to trace back errors
off-by-one bug here, also the correct "backward indexes" code in python is `reversed(range(c))`.

Instead of code that iterates backwards so we can modify the list we're iterating over, why not make it so we can call self._update_modes(include_sweep=False)