public class PuzzleProblem { public PuzzleProblem(PuzzleState initialState) { ... } public boolean success() { ... } public PuzzleState getCurrentState() { ... } public void setCurrentState(PuzzleState currentState) { ... } public String getIntroduction() { ... } ... }