implement Duplicator