updated template with #defines and includes