changed preprocessors to use #pragma once instead of #ifndef