Design Patterns implemented in Swift