Renaming `add` as `op` obfuscates what's going on. Especially as `op` has the same name as `self.op`.