hash self.recursive move