rework the header interface