Added include guard to prevent multiple inclusion