When first looking at yield_self I thought this was the same as yield self it is not.

yield_self is useful when chaining methods and has an alias then which makes more sense to me as this acts similarly to Promises in Javascript