I'm not entirely clear on why we need to introduce the `providerProperties` object.