No more preprocessor directives & other refactoring