public override void Execute() { Console.WriteLine("\nExecute!\n"); ConstraintSolver solver = ConstraintSolver.Instance(); // This is done just to show the current state. solver.Solve(); // Create a memento // Acting as caretaker by storing it here _state = solver.CreateMemento(); // Move graphic _target.Move(_delta); // Adjust constraints for movement solver.ChangeState(); solver.Solve(); }