do we need a ``duplicate`` static method ? couldn't we implement it using ``__clone``  and the native way to duplicate objects with the ``clone`` keyword ?