diff --git a/asterix-examples/src/main/resources/black-cherry/README.md b/asterix-examples/src/main/resources/black-cherry/README.md
old mode 100644
new mode 100755
diff --git a/asterix-examples/src/main/resources/black-cherry/black_cherry_bootstrap.py b/asterix-examples/src/main/resources/black-cherry/black_cherry_bootstrap.py
old mode 100644
new mode 100755
diff --git a/asterix-examples/src/main/resources/black-cherry/bottle.py b/asterix-examples/src/main/resources/black-cherry/bottle.py
old mode 100644
new mode 100755
diff --git a/asterix-examples/src/main/resources/black-cherry/proxy.py b/asterix-examples/src/main/resources/black-cherry/proxy.py
old mode 100644
new mode 100755
diff --git a/asterix-examples/src/main/resources/black-cherry/run_black_cherry.py b/asterix-examples/src/main/resources/black-cherry/run_black_cherry.py
old mode 100644
new mode 100755
index 8c8df9b..682339e
--- a/asterix-examples/src/main/resources/black-cherry/run_black_cherry.py
+++ b/asterix-examples/src/main/resources/black-cherry/run_black_cherry.py
@@ -2,7 +2,7 @@
 import requests
 from bottle import route, run, template, get, debug, static_file, request, response
 
-debug(True)
+debug(False)
 http_header = { "content-type": "application/json" }
 
 # Core Routing
@@ -43,4 +43,4 @@
     return (build_response("update", dict(request.query)))
     
 res = black_cherry_bootstrap.bootstrap()
-run(host='localhost', port=8080, reloader=True)
+run(host='localhost', port=8080)
diff --git a/asterix-examples/src/main/resources/black-cherry/static/data/query.txt b/asterix-examples/src/main/resources/black-cherry/static/data/query.txt
old mode 100644
new mode 100755
diff --git a/asterix-examples/src/main/resources/black-cherry/static/data/twm.adm b/asterix-examples/src/main/resources/black-cherry/static/data/twm.adm
old mode 100644
new mode 100755
Binary files differ
diff --git a/asterix-examples/src/main/resources/black-cherry/static/img/finalasterixlogo.png b/asterix-examples/src/main/resources/black-cherry/static/img/finalasterixlogo.png
old mode 100644
new mode 100755
Binary files differ
diff --git a/asterix-examples/src/main/resources/black-cherry/static/img/hyrax.png b/asterix-examples/src/main/resources/black-cherry/static/img/hyrax.png
old mode 100644
new mode 100755
Binary files differ
diff --git a/asterix-examples/src/main/resources/black-cherry/static/js/asterix-sdk-stable.js b/asterix-examples/src/main/resources/black-cherry/static/js/asterix-sdk-stable.js
old mode 100644
new mode 100755
diff --git a/asterix-examples/src/main/resources/black-cherry/static/js/cherry.js b/asterix-examples/src/main/resources/black-cherry/static/js/cherry.js
index 40aaac2..83c5ab2 100755
--- a/asterix-examples/src/main/resources/black-cherry/static/js/cherry.js
+++ b/asterix-examples/src/main/resources/black-cherry/static/js/cherry.js
@@ -539,7 +539,7 @@
 
     param_placeholder = {
         "query_string" : "use dataverse twitter;\n" + df.val(),
-        "marker_path" : "../img/mobile2.png",
+        "marker_path" : "static/img/mobile2.png",
         "on_click_marker" : onClickTweetbookMapMarker,
         "on_clean_result" : onCleanTweetbookDrilldown,
         "payload" : zoneData
@@ -759,7 +759,7 @@
           
    param_placeholder = {
         "query_string" : "use dataverse twitter;\n" + plotTweetQuery.val(),
-        "marker_path" : "../img/mobile_green2.png",
+        "marker_path" : "static/img/mobile_green2.png",
         "on_click_marker" : onClickTweetbookMapMarker,
         "on_clean_result" : onCleanPlotTweetbook,
     };
@@ -835,12 +835,19 @@
 
 function onCleanPlotTweetbook(records) {
     var toPlot = [];
+
+    // An entry looks like this:
+    // { "tweetId": "273589", "tweetText": " like verizon the network is amazing", "tweetLoc": { point: [37.78, 82.27]}, "tweetCom": "hooray comments" }
+    
     for (var entry in records) {
+    
+        var points = records[entry].split("point:")[1].match(/[-+]?[0-9]*\.?[0-9]+/g);
+        
         var tweetbook_element = {
             "tweetEntryId"  : parseInt(records[entry].split(",")[0].split(":")[1].split('"')[1]),
             "tweetText"     : records[entry].split("tweetText\": \"")[1].split("\", \"tweetLoc\":")[0],
-            "tweetLat"      : parseFloat(records[entry].split("tweetLoc\": point(\"")[1].split(",")[0]),
-            "tweetLng"      : parseFloat(records[entry].split("tweetLoc\": point(\"")[1].split(",")[1].split("\"")[0]),
+            "tweetLat"      : parseFloat(points[0]),
+            "tweetLng"      : parseFloat(points[1]),
             "tweetComment"  : records[entry].split("tweetCom\": \"")[1].split("\"")[0]
         };
         toPlot.push(tweetbook_element);
@@ -854,12 +861,16 @@
     var drilldown_cleaned = [];
     
     for (var entry = 0; entry < rec.length; entry++) {
-            
+   
+        // An entry looks like this:
+        // { "tweetId": "105491", "tweetText": " hate verizon its platform is OMG", "tweetLoc": { point: [30.55, 71.44]} }
+        var points = rec[entry].split("point:")[1].match(/[-+]?[0-9]*\.?[0-9]+/g);
+        
         var drill_element = {
-            "tweetEntryId" : parseInt(rec[entry].split(",")[0].split(":")[1].split('"')[1]),
+            "tweetEntryId" : parseInt(rec[entry].split(",")[0].split(":")[1].replace('"', '')),
             "tweetText" : rec[entry].split("tweetText\": \"")[1].split("\", \"tweetLoc\":")[0],
-            "tweetLat" : parseFloat(rec[entry].split("tweetLoc\": point(\"")[1].split(",")[0]),
-            "tweetLng" : parseFloat(rec[entry].split("tweetLoc\": point(\"")[1].split(",")[1].split("\"")[0])
+            "tweetLat" : parseFloat(points[0]),
+            "tweetLng" : parseFloat(points[1])
         };
         drilldown_cleaned.push(drill_element);
     }
