it is not for safety, and not functions, but methods
and it doesnt even have to be ``self``, its a convention (that basically everyone follows), what matters is its the first positional argument in a method