refactored header