include guards refactor