I don't understand the purpose of `self` here. Why not just use `this`?