Long ago Swift introduced a nice concept differentiating between value and
reference semantic using Struct and Classes. As we all know, Struct is a value
semantic, which means when value of one struct is assigned to another struct,
only value is copied, not the reference - Which in other words