fixed redifinition of extern symbols, if you are including header multiple times