Move Driver to its own file. Fix drive() so it can actually run hooks.