Using 'final' to avoid dynamic dispatch on Swift: https://developer.apple.com/swift/blog/?id=27 (interesting keyword choice, I associate final with immutability)