enums structs and funs all working to some degree or another