Design Patterns implemented in Kotlin (www.reddit.com)