I don't rewrite this, I have no idea how we can pass the adapter in the factory constructor in a right way .. an "$option" parameter ? but only the remote object will use this parameter :/