Cleaning up AbstractClient::__construct()
Moving the custom S3 command factory to the client factory method