Include Guards

Now ALL files should properly be included as expected. Using include
guards to protect against variable redefinition.