add driver interface and the structs
new ressource for drivers