separate header from message structs