private TableCell MakeCell(string value, int row, int col, LocalizationTable table)
 {
     return(new TableCell(value, true).Do(cell => {
         cell.OnValueChanged += newValue => {
             table.UpdateLocalization(row, col, newValue);
             Utils.ApplyChanges(table);
         };
         cell.OnNextCellSelected += () => {
             var nextCell = GetCell(row, col + 2) ?? GetCell(row + 1, 0);
             nextCell?.BeginEdit();
         };
         cell.OnPreviousCellSelected += () => GetCell(row, col)?.BeginEdit();
         cell.OnNextRowSelected += () => {
             var nextRow = row + 1 < keyColumn.childCount - 2 ? GetCell(row + 1, col + 1) : GetCell(row + 1, 0);
             nextRow?.BeginEdit();
         };
         cell.OnPreviousRowSelected += () => {
             if (row == 0)
             {
                 return;
             }
             GetCell(row - 1, col + 1)?.BeginEdit();
         };
     }));
 }