By having variables and code in a header file, every time that header is included in a different file, a separate function and variable is created. No one should touch this library as is unless they want to stare at endless linker issues and broken code.