Extension functions are an idiomatic way of extending classes that we do not control to express our code in a more OOP way. Unlike Ruby, they are not unconditionally applied so we don't blow up basic data types.
Extensions are resolved statically.
https://kotlinlang.org/docs/reference/extensions.html
- Rework all these ugly functions to be truly OOP