converted to structs