header refactoring