Done. I have a working version. I would need you to take a look at it. Although I could remove the `setProvider(Provider provider)` from the interface I had to keep it publicly visible in the implementation class (`DefaultDirectory`) in order for the `DefaultTenant` to be able to add the provider information to the directory when performing the actual `CreateDirectoryRequest`