for (Iterator<StateData> sd = states.iterator() ; sd.hasNext() ;){
StateData stateData = sd.next();
State s = stateData.getState();
Set<Modifier> modifiers = stateData.getModifiers(); // the states and their according modifiers are simply written one after the other
for (Iterator<Modifier> mod = modifiers.iterator() ; mod.hasNext() ;){
Modifier modifier = mod.next();
for (Iterator<StateData> sd = states.iterator() ; sd.hasNext() ;){
StateData stateData = sd.next();
State s = stateData.getState();
Set<Modifier> modifiers = stateData.getModifiers(); // the states and their according modifiers are simply written one after the other
for (Iterator<Modifier> mod = modifiers.iterator() ; mod.hasNext() ;){
Modifier modifier = mod.next();