change all hpp header define
separate implementation from hpp to cpp