moved structs to header