change the header and cpp