Added is_complete() and is_valid_puzzle()