Improved get_driver() that dynamically creates driver if neccessary