Old Design Patterns in Scala