start refactoring header