Small fixes in the Abstract template
Fixed the some preprocessor logic
Using a new template