Actually follow rules using True and False.  Managed to refactor a little bit.