to expand more on this, `self` always exists, and depends on the context. The receiver param is always `self`, so say in irb you could print `self` and you would get something. when you do `my_method` without any receiver, it is inferred that `self` is the receiver.
you can try: 
```
$ pry
[270] pry(main)> self.object_id
=> 2237634900
[271] pry(main)> object_id
=> 2237634900
```