https://blog.grigory.nl/posts/using-mixins-in-swift/
Using Mixins in Swift - Grigory Avdyushin