V3

Separates each class into their on header and implementation file. 
Refactoring globals next.