Fixed redefinition error by adding header guards