pragma -> define guards