Implemented David's suggestion to separate modifiers and states