added c++ guard in header