these are just silly, no reason to use `self` here