Rewrites queries to cleaner syntax
diff --git a/asterix-app/src/main/resources/sdk/static/AdmAql101/demo.html b/asterix-app/src/main/resources/sdk/static/AdmAql101/demo.html
index 3afaaa4..7ad27ae 100644
--- a/asterix-app/src/main/resources/sdk/static/AdmAql101/demo.html
+++ b/asterix-app/src/main/resources/sdk/static/AdmAql101/demo.html
@@ -6,23 +6,25 @@
 
     <style>
         .pretty-printed {
-    background-color: #eeeeee;
-    margin-bottom: 1em;
+            background-color: #eeeeee;
+            margin-bottom: 1em;
         }
 
         .how-to-run {
-    background-color: #c8c8c8;
-    margin-bottom: 1em;
+            background-color: #c8c8c8;
+            margin-bottom: 1em;
         }
 
         .result-output {
-    background-color: #BED8E5;
-    margin-bottom: 1em;
+            background-color: #BED8E5;
+            margin-bottom: 1em;
+            overflow-x: scroll;
+            overflow-y: none;
         }
 
         body {
-    font-family : "Helvetica";
-    margin-bottom: 1em;
+            font-family : "Helvetica";
+            margin-bottom: 1em;
         }
     </style>
 
@@ -46,8 +48,8 @@
 
         <div class="how-to-run"><pre><code class="javascript">
         var expression0a = new FLWOGRExpression()
-            .bind( new ForClause("user", new AExpression().set("dataset FacebookUsers")))
-            .bind( new WhereClause(new AExpression().set("$user.id = 8")))
+            .ForClause("$user", new AExpression("dataset FacebookUsers"))
+            .WhereClause(new AExpression("$user.id = 8"))
             .ReturnClause("$user");
         </code></pre></div>
 
@@ -70,12 +72,9 @@
         
         <div class="how-to-run"><pre><code class="javascript">
         var expression0b = new FLWOGRExpression()
-            .bind( new ForClause("user", new AExpression().set("dataset FacebookUsers")))
-            .bind( new WhereClause().and(
-                new AExpression().set("$user.id >= 2"), 
-                new AExpression().set("$user.id <= 4")
-            ))
-            .ReturnClause("$user");        
+            .ForClause("$user", new AExpression("dataset FacebookUsers"))
+            .WhereClause().and(new AExpression("$user.id >= 2"), new AExpression("$user.id <= 4"))
+            .ReturnClause("$user");       
         </code></pre></div>
 
         <div class="result-output" id="result0b">
@@ -98,11 +97,11 @@
         
         <div class="how-to-run"><pre><code class="javascript">
         var expression1 = new FLWOGRExpression()
-            .bind( new ForClause("user", new AExpression().set("dataset FacebookUsers")))
-            .bind( new WhereClause().and(
-                new AExpression().set("$user.user-since >= datetime('2010-07-22T00:00:00')"), 
-                new AExpression().set("$user.user-since <= datetime('2012-07-29T23:59:59')")
-            ))
+            .ForClause("$user", new AExpression("dataset FacebookUsers"))
+            .WhereClause().and(
+                new AExpression("$user.user-since >= datetime('2010-07-22T00:00:00')"), 
+                new AExpression("$user.user-since <= datetime('2012-07-29T23:59:59')")
+            )
             .ReturnClause("$user");
         </code></pre></div>
 
@@ -129,13 +128,13 @@
         
         <div class="how-to-run"><pre><code class="javascript">
         var expression2a = new FLWOGRExpression()
-            .bind( new ForClause ("user", new AQLClause().set("dataset FacebookUsers")))
-            .bind( new ForClause ("message", new AQLClause().set("dataset FacebookMessages")))
-            .bind( new WhereClause (new AExpression().set("$message.author-id = $user.id")))
+            .ForClause ("$user", new AExpression("dataset FacebookUsers"))
+            .ForClause ("$message", new AExpression("dataset FacebookMessages"))
+            .WhereClause(new AExpression("$message.author-id = $user.id"))
             .ReturnClause({
-                    "uname" : "$user.name",
-                    "message" : "$message.message"
-                });
+                "uname" : "$user.name",
+                "message" : "$message.message"
+            });
         </code></pre></div>
 
         <div class="result-output" id="result2a">
@@ -161,15 +160,13 @@
         
         <div class="how-to-run"><pre><code class="javascript">
         var expression2b = new FLWOGRExpression()
-            .bind( new ForClause ("user", new AQLClause().set("dataset FacebookUsers")))
-            .bind( new ForClause ("message", new AQLClause().set("dataset FacebookMessages")))
-            .bind( new WhereClause (new AExpression().set("$message.author-id /*+ indexnl */  = $user.id")))
-            .ReturnClause(
-                {
+            .ForClause ("$user", new AExpression("dataset FacebookUsers"))
+            .ForClause ("$message", new AExpression("dataset FacebookMessages"))
+            .WhereClause(new AExpression("$message.author-id /*+ indexnl */  = $user.id"))
+            .ReturnClause({
                     "uname" : "$user.name",
                     "message" : "$message.message"
-                }
-            );
+            });
         </code></pre></div>
 
         <div class="result-output" id="result2b">
@@ -195,12 +192,12 @@
         
         <div class="how-to-run"><pre><code class="javascript">
         var expression3messages = new FLWOGRExpression()
-            .bind( new ForClause("message", new AExpression().set("dataset FacebookMessages")))
-            .bind( new WhereClause(new AExpression().set("$message.author-id = $user.id")))
+            .ForClause("$message", new AExpression("dataset FacebookMessages"))
+            .WhereClause(new AExpression("$message.author-id = $user.id"))
             .ReturnClause("$message.message");
 
         var expression3 = new FLWOGRExpression()
-            .bind( new ForClause ("user", new AQLClause().set("dataset FacebookUsers")))
+            .ForClause ("$user", new AExpression("dataset FacebookUsers"))
             .ReturnClause({
                 "uname": "$user.name",
                 "messages" : expression3messages
@@ -230,12 +227,12 @@
         
         <div class="how-to-run"><pre><code class="javascript">
         var expression4messages = new FLWOGRExpression()
-            .bind( new ForClause( "t2", new AExpression().set("dataset TweetMessages")))
-            .bind( new WhereClause( new AExpression().set("spatial-distance($t.sender-location, $t2.sender-location) <= 1")))
+            .ForClause( "$t2", new AExpression("dataset TweetMessages"))
+            .WhereClause( new AExpression("spatial-distance($t.sender-location, $t2.sender-location) <= 1"))
             .ReturnClause({ "msgtxt" : "$t2.message-text" });
             
         var expression4 = new FLWOGRExpression()
-            .bind( new ForClause( "t", new AExpression().set("dataset TweetMessages") ))
+            .ForClause( "$t", new AExpression("dataset TweetMessages"))
             .ReturnClause({
                 "message" : "$t.message-text",
                 "nearby-messages" : expression4messages
@@ -273,16 +270,16 @@
         
         <div class="how-to-run"><pre><code class="javascript">
         var similarUsersExpression = new FLWOGRExpression()
-            .bind( new ForClause ("t", new AQLClause().set("dataset TweetMessages")))
-            .bind( new LetClause ("tu", new AExpression().set("$t.user")))
-            .bind( new WhereClause (new AExpression().set("$tu.name ~= $fbu.name")))
+            .ForClause("$t", new AExpression("dataset TweetMessages"))
+            .LetClause ("$tu", new AExpression("$t.user"))
+            .WhereClause(new AExpression("$tu.name ~= $fbu.name"))
             .ReturnClause({
                 "twitter-screenname": "$tu.screen-name",
                 "twitter-name": "$tu.name"
             });
-            
+        
         var expression5 = new FLWOGRExpression()
-            .bind( new ForClause ("fbu", new AQLClause().set("dataset FacebookUsers")))
+            .ForClause ("$fbu", new AExpression("dataset FacebookUsers"))
             .ReturnClause(
                 {
                     "id" : "$fbu.id",
@@ -311,14 +308,14 @@
         
         <div class="how-to-run"><pre><code class="javascript">
         var expression6 = new FLWOGRExpression()
-            .bind( new ForClause ("fbu", new AQLClause().set("dataset FacebookUsers")))
-            .bind( new WhereClause ( 
+            .ForClause ("$fbu", new AQLClause().set("dataset FacebookUsers"))
+            .WhereClause( 
                 new QuantifiedExpression (
                     "some" , 
-                    {"$e" : new AQLClause().set("$fbu.employment") },
-                    new AQLClause().set("is-null($e.end-date)")
+                    {"$e" : new AExpression("$fbu.employment") },
+                    new FunctionExpression("is-null", new AExpression("$e.end-date"))
                 )
-            ))
+            )
             .ReturnClause("$fbu");
         </code></pre></div>
 
@@ -331,7 +328,7 @@
 
     <h2>Query 7 - Universal Quantification</h2>
     <div class="sample-query">
-        <div class="pretty-printed"><pre><pre>
+        <div class="pretty-printed"><pre>
     use dataverse TinySocial;
 
     for $fbu in dataset FacebookUsers
@@ -341,18 +338,15 @@
         
         <div class="how-to-run"><pre><code class="javascript">
         var expression7 = new FLWOGRExpression()
-        .bind( new ForClause (
-            "fbu",
-            new AQLClause().set("dataset FacebookUsers")
-        ))
-        .bind( new WhereClause ( 
-            new QuantifiedExpression (
-                "every" , 
-                {"$e" : new AQLClause().set("$fbu.employment") },
-                new AQLClause().set("not(is-null($e.end-date))")
+            .ForClause("$fbu", new AExpression("dataset FacebookUsers"))
+            .WhereClause( 
+                new QuantifiedExpression (
+                    "every" , 
+                    {"$e" : new AExpression("$fbu.employment") },
+                    new FunctionExpression("not", new FunctionExpression("is-null", new AExpression("$e.end-date")))
+                )
             )
-        ))
-        .ReturnClause("$fbu");
+            .ReturnClause("$fbu");
         </code></pre></div>
 
         <div class="result-output" id="result7">
@@ -374,7 +368,7 @@
         var expression8 = new FunctionExpression(
             "count",
             new FLWOGRExpression()
-                .bind( new ForClause("fbu", new AQLClause().set("dataset FacebookUsers")))
+                .ForClause("$fbu", new AExpression("dataset FacebookUsers"))
                 .ReturnClause("$fbu")
         );
         </code></pre></div>
@@ -401,12 +395,12 @@
         
         <div class="how-to-run"><pre><code class="javascript">
         var expression9a = new FLWOGRExpression()
-            .bind( new ForClause("t", new AExpression().set("dataset TweetMessages")))
-            .bind( new GroupClause("uid", new AExpression().set("$t.user.screen-name"), "with", "t") )
+            .ForClause("$t", new AExpression("dataset TweetMessages"))
+            .GroupClause("$uid", new AExpression("$t.user.screen-name"), "with", "$t")
             .ReturnClause(
                 {
                     "user" : "$uid",
-                    "count" : new FunctionExpression("count", new AExpression().set("$t"))
+                    "count" : new FunctionExpression("count", new AExpression("$t"))
                 }
             );
         </code></pre></div>
@@ -434,13 +428,13 @@
         
         <div class="how-to-run"><pre><code class="javascript">
         var expression9b = new FLWOGRExpression()
-            .bind( new ForClause("t", new AExpression().set("dataset TweetMessages"))) 
-            .bind( new AQLClause().set("/*+ hash*/"))  
-            .bind( new GroupClause("uid", new AExpression().set("$t.user.screen-name"), "with", "t") )
+            .ForClause("$t", new AExpression("dataset TweetMessages"))
+            .AQLClause("/*+ hash*/")
+            .GroupClause("$uid", new AExpression("$t.user.screen-name"), "with", "$t")
             .ReturnClause(
                 {
                     "user" : "$uid",
-                    "count" : new FunctionExpression("count", new AExpression().set("$t"))
+                    "count" : new FunctionExpression("count", new AExpression("$t"))
                 }
             );
         </code></pre></div>
@@ -470,20 +464,17 @@
         
         <div class="how-to-run"><pre><code class="javascript">
         var expression10 = new FLWOGRExpression()
-        .bind( new ForClause("t", new AExpression().set("dataset TweetMessages")))
-        .bind( new GroupClause("uid", new AExpression().set("$t.user.screen-name"), "with", "t") )
-        .bind( new LetClause(
-            "c", 
-            new FunctionExpression("count", new AExpression().set("$t"))
-        ))
-        .bind( new OrderbyClause( new AExpression().set("$c"), "desc" ) )
-        .bind( new LimitClause(new AExpression().set("3")) )
-        .ReturnClause(
-            {
-                "user" : "$uid",
-                "count" : "$c"
-            }
-        );
+            .ForClause("$t", new AExpression("dataset TweetMessages"))
+            .GroupClause("$uid", new AExpression("$t.user.screen-name"), "with", "$t")
+            .LetClause("$c", new FunctionExpression("count", new AExpression("$t")))
+            .OrderbyClause( new AExpression("$c"), "desc" )
+            .LimitClause(new AExpression("3"))
+            .ReturnClause(
+                {
+                    "user" : "$uid",
+                    "count" : "$c"
+                } 
+            );
         </code></pre></div>
 
         <div class="result-output" id="result10">
@@ -512,18 +503,18 @@
         </pre></div>
         
         <div class="how-to-run"><pre><code class="javascript">
-        var expression11 = new FLWOGRExpression()
-        .bind( new ForClause( "t", new AExpression().set("dataset TweetMessages") ))
+    var expression11 = new FLWOGRExpression()
+        .ForClause( "$t", new AExpression("dataset TweetMessages"))
         .ReturnClause({
-            "tweet"         : new AExpression().set("$t"),       
+            "tweet"         : new AExpression("$t"),       
             "similar-tweets": new FLWOGRExpression()
-                                .bind( new ForClause( "t2", new AExpression().set("dataset TweetMessages") ))
-                                .bind( new WhereClause().and(
-                                    new AExpression().set("$t2.referred-topics ~= $t.referred-topics"), 
-                                    new AExpression().set("$t2.tweetid != $t.tweetid")
-                                 ))
+                                .ForClause( "$t2", new AExpression("dataset TweetMessages"))
+                                .WhereClause().and(
+                                    new AExpression("$t2.referred-topics ~= $t.referred-topics"), 
+                                    new AExpression("$t2.tweetid != $t.tweetid")
+                                 )
                                 .ReturnClause("$t2.referred-topics")
-        }); 
+        });
         </code></pre></div>
 
         <div class="result-output" id="result11">