diff --git a/lib/util.js b/lib/util.js
index <HASH>..<HASH> 100644
--- a/lib/util.js
+++ b/lib/util.js
@@ -44,15 +44,19 @@ util = {
      * A generic utility method to sanitize variable transformations across collection formats.
      *
      * @param {Object} entity - A generic object that could contain variable data.
-     * @param {?Object} fallback - A set of optional fallback values for variable transformations.
+     * @param {?Object} options - The set of options for variable handling.
+     * @param {?Object} options.fallback - The fallback values to be used if no variables are present.
+     * @param {?Boolean} options.noDefaults - When set to true, id will be retained.
      * @return {Array} - The set of sanitized entity level variables.
      */
-    handleVars: function (entity, fallback) {
+    handleVars: function (entity, options) {
         var self = this,
+            noDefaults = options && options.noDefaults,
             source = entity && (entity.variables || entity.variable),
-            result = _.map(source || (fallback && fallback.values), function (item) {
+            fallback = options && options.fallback && options.fallback.values,
+            result = _.map(source || fallback, function (item) {
                 var result = {
-                    id: item.id,
+                    id: !(noDefaults || item.id) ? self.uid() : item.id,
                     key: item.key || item.id,
                     value: item.value,
                     type: item.type || self.typeMap[typeof item.value] || 'any'
Added support for noDefaults to variable handling