Use subclasses when available