A spreadsheet abstraction layer