change header files to guard instead of #pragma once