The check removing the check function when it doesn't apply due to selecting the first partitiont
inlining of self._cuurent.__nonzero__
combined nested if statements
combinated another set of if statements
moved validity check earlier to remove redundently adding and removed states.
removed some redunent checks and a try/except sequence
the subset iterator while loops should have a max check (and only add states if below the max)