this is not much intuitive as Struct usually have own constructor with list of parameters that are same as its elements.