reorganized header file structure