self.perform not perform