In order for PuzzleState objects to act like graph vertices, the PuzzleState class must implement the Vertex interface.
We already have a class that implements Vertex: SimpleVertex.
So, make PuzzleState extend SimpleVertex:
package puzzle; import framework.State; import graph.SimpleVertex; public class PuzzleState extends SimpleVertex implements State { ... }