That is quite a lot of adding and removing of actors. I think you are over-complicating things a bit. If I was doing this my way, I would have four Actor subclasses -- StartPoint, EndPoint, Wire, and Button. The only thing being added and removed from the world would be the wires. The arrangement of wires would be checked only when the button is clicked. The checking code would use current state only, not using field values to determine pass or fail. I would have the checking code set an instance boolean field in the world class to the pass/fail value. I would set it to 'false' when I use the 'addedToWorld' or 'removeObject' methods for the wires. That way, the only way it will be true is immediately after clicking the button with the correct connectivity.

