Support multiple driver-types and add flexible options hash