Refactor headers to use #pragma once rather than #include guards