using structs is hard