Use emplace_back where possible
Major preprocessor refactoring
Formatting
(must fix warnings)