added include guards as per style guide