rename to hpp and include c++ guards