sort of fixed class type redefinition errors and header guards