header refactor