Guard conditions

Proper guard conditions in header files to prevent multiple inclusion.