fixed self.callback