public abstract Task SubscribeToUpdatesAsyncInternal(ButtplugDeviceReadOptions aOptions);
 public abstract Task <byte[]> ReadValueAsyncInternal(ButtplugDeviceReadOptions aOptions,
                                                      CancellationToken aToken = default(CancellationToken));
 public Task SubscribeToUpdatesAsync(
     ButtplugDeviceReadOptions aOptions = default(ButtplugDeviceReadOptions))
 {
     return(SubscribeToUpdatesAsyncInternal(aOptions ?? new ButtplugDeviceReadOptions()));
 }
 public Task <byte[]> ReadValueAsync(ButtplugDeviceReadOptions aOptions = default(ButtplugDeviceReadOptions),
                                     CancellationToken aToken           = default(CancellationToken))
 {
     return(ReadValueAsyncInternal(aOptions ?? new ButtplugDeviceReadOptions(), aToken));
 }