@Override
 public LayerCell getCellByPosition(int columnPosition, int rowPosition) {
   int underlyingColumnPosition = localToUnderlyingColumnPosition(columnPosition);
   int underlyingRowPosition = localToUnderlyingRowPosition(rowPosition);
   LayerCell cell =
       underlyingLayer.getCellByPosition(underlyingColumnPosition, underlyingRowPosition);
   if (cell != null) {
     cell.updatePosition(
         this,
         underlyingToLocalColumnPosition(underlyingLayer, cell.getOriginColumnPosition()),
         underlyingToLocalRowPosition(underlyingLayer, cell.getOriginRowPosition()),
         underlyingToLocalColumnPosition(underlyingLayer, cell.getColumnPosition()),
         underlyingToLocalRowPosition(underlyingLayer, cell.getRowPosition()));
   }
   return cell;
 }