referencing struct fields in patterns
process enum structs differently