Splits into header and cpp