Refactor spirit core to use 'driver' instead of 'adapter'