The inheritance is copied from `BetterSelectingZoom`, which subclasses `AbstractOverlay` and `BetterZoom`, which itself inherits from `BaseTool` and `ToolHistoryMixin`.

Would it be better to separate the tool and the overlay, as in `RangeSelection` and `RangeSelectionOverlay`?