self is unnecessary