moved all structs to header