Tag - encapsulation and abstraction in swift