refactoring header