started working on PuzzleView; code is getting bad