revamping data structure, fixed header