Refactor to use PuzzleObstacle rather that Lock class