use self.duplicate