A modular sudoku-solving program