generate: hpp and cpp