Driver implementation