refactoring puzzle
add puzzleMatrix to encapsulate matrix operation in puzzle
refactoring remove matrix from puzzle