Adding header guards to prevent redefinitions