why is not `self`?