Why don't declare `kinesisClient` as type `AmazonKinesisAsyncClient` in the `Client` and `ClientImpl` types? I'm not a bit fan of runtime type conversions :smile: