Refactor into driver-specific interfaces