split hpp into hpp and cpp