finish header refactor!