separated typedefs and structs to common header file