got rid of normalizeBoard() and refactored isSolvable()