and I think it would be nice to use more verbose attribute names - not `self.cb` but `self.callback`