Normally we would have a Driver for each implementation, e.g. `XmlDriver`, `AnnotationDriver`, `YamlDriver` .. this is how it works in other places.