moved the violation checking from fsa to execute