use #ifndef pattern