https://softwarepatternslexicon.com/js/idiomatic-javascript-patterns/the-mixin-pattern/
JavaScript Mixin Pattern: Extending Objects Without Inheritance