these two calls are the only place you need to be using `self` here