RoutingTableVisualizerBase::addRouteVisualizations(IIpv4RoutingTable) => addRouteVisualizations(IRoutingTable)
It already only uses IRoutingTable interfaces.
RoutingTableVisualizerBase::getDestinations() get Destinations can also be genericised to return vector<L3Address>