protected void fireStateChanged(Assignment assignment, CSP csp) { foreach (CSPStateListener listener in listeners) listener.stateChanged(assignment.copy(), csp.copyDomains()); }