Why do we need `self` here?