diff --git a/asterix-app/src/main/resources/sdk/static/js/asterix-sdk-stable.js b/asterix-app/src/main/resources/sdk/static/js/asterix-sdk-stable.js
index ae8fae9..b068209 100644
--- a/asterix-app/src/main/resources/sdk/static/js/asterix-sdk-stable.js
+++ b/asterix-app/src/main/resources/sdk/static/js/asterix-sdk-stable.js
@@ -63,13 +63,13 @@
             
         } else if (response["handle"]) {
             
-            var fn_callback = this.callbacks["async"];
-            fn_callback(response, extra);
+            var fn_callback = myThis.callbacks["async"];
+            fn_callback(response, myThis.extras);
             
         } else if (response["status"]) {
                 
-            var fn_callback = this.callbacks["sync"];
-            fn_callback(response, extra);
+            var fn_callback = myThis.callbacks["sync"];
+            fn_callback(response, myThis.extras);
         }
     }
 
diff --git a/asterix-examples/src/main/resources/cherry/js/cherry.js b/asterix-examples/src/main/resources/cherry/js/cherry.js
index 29a4ae1..532e259 100755
--- a/asterix-examples/src/main/resources/cherry/js/cherry.js
+++ b/asterix-examples/src/main/resources/cherry/js/cherry.js
@@ -425,7 +425,6 @@
 */
 function cherryQuerySyncCallback(res, extra) {
     records = res["results"];
-    alert(records.length);
 
     var coordinates = [];
     var weights = [];
@@ -435,6 +434,7 @@
         weights.push(coordinate["weight"]);
         coordinates.push(coordinate);
     }
+    
     triggerUIUpdate(coordinates, extra["payload"], weights);
 }
 
@@ -477,10 +477,14 @@
             };
             var map_circle = new google.maps.Circle(map_circle_options);
             map_circle.val = mapPlotData[m];
+            map_circle.info = new google.maps.InfoWindow({
+                content: mapPlotData[m].weight.toString()
+            });
             
             // Clicking on a circle drills down map to that value
             google.maps.event.addListener(map_circle, 'click', function (event) {
-                onMapPointDrillDown(map_circle.val);     
+                // DEMO Stability Placeholder
+                // onMapPointDrillDown(map_circle.val);
             });
             
             // Add this marker to global marker cells
