Make Spreadsheet.compute a factory, close #18