Reorganizing code - preparation for better extensibility
Separating Core Passes
Putting Constants in Core
Splitting PSR from Core
Fixing build after refactor
Grouping Base Core Classes