Better header structure + implementation