Added struct constructors and matches for enum and vector