code: func NewInMemoryProvider(opts ...InMemoryOption) *InMemoryProvider {
  	im := &InMemoryProvider{
  		filter:         &filter{},
  		OnApplyChanges: func(changes *plan.Changes) {},
  		OnRecords:      func() {},
  		domain:         NewDomainFilter([]string{""}),
  		client:         newInMemoryClient(),
  	}
  
  	for _, opt := range opts {
  		opt(im)
  	}
  
  	return im
  }
docs: // NewInMemoryProvider returns InMemoryProvider DNS provider interface implementation