Я предлагаю вам сделать ваши драйверы как компоненты системы, при добавлении нового драйвера оборачиваете его в класс обертку, все необходимые классы цепляете к самому приложению, и вызываете тот, который подойдет в нужной ситуации, по
ссылке найдете всю нужную информацию.
К тому же можно сделать инциализацию компонент только при их вызове, т.е. при старте приложения они не будут инициализированы, а только в момент вызова.