https://www.sourcebaran.com/learn/kotlincompanion-objects/