add support for evaluating the correct platform to use in a connection
extract abstract base driver classes for vendors