I know this is WIP, but this code just asks for being source of bugs in future. Given that `x_range` is an object (thanks to `@mget_obj()`), then this should use subclass relation instead. Otherwise, what will happen when a subclass of `FactorRange` is introduced? If we desire to definitively not subclass `FactorRange`, then it should be marked as `final` to denote intended behavior (Python doesn't support `final`, `override`, `private`, etc. modifiers, but we can at least comment on that, or use a new decorator for that purpose). But even then I would prefer using proper techniques. Furthermore, this code is repeated several times, so maybe each `Range`'s subtype should provide correct implementation of its mapper. Then this code would boil down to, e.g. `x_range.mapper_type`. Unfortunately, `FactorRange` inherits directly from `HasProperties` (the same for `Range1d`) and there is no `Range` abstract class. There is also a subclass of `FactorRange`: `DataFactorRange`.