bugfix this.callback to $self.callback