     super
 
   exec: (ctx) ->
-    args = @execArgs(ctx)
-    if args?.constructor.name == 'Quantity'
-      Quantity.createQuantity( Math.abs(args.value), args.unit)
-    else
-      Math.abs args
+    arg = @execArgs(ctx)
+    if (not arg?)
+      null
+    else if arg.constructor.name == 'Quantity'
+      Quantity.createQuantity( Math.abs(arg.value), arg.unit)
+    else
+      Math.abs arg
 
 module.exports.Negate = class Negate extends Expression
   constructor: (json) ->
     super
 
   exec: (ctx) ->
-    args = @execArgs(ctx)
-    if args?.constructor.name == 'Quantity'
-      Quantity.createQuantity(args.value * -1,args.unit)
-    else
-      args * -1
+    arg = @execArgs(ctx)
+    if (not arg?)
+      null
+    else if arg.constructor.name == 'Quantity'
+      Quantity.createQuantity(arg.value * -1, arg.unit)
+    else
+      arg * -1
 
 module.exports.Round = class Round extends  Expression
   constructor: (json) ->


  exec: (ctx) ->
    args = @execArgs(ctx)
    if (args?.some (x) -> not x?)
      null
    else
      args?.reduce (x,y) ->


  exec: (ctx) ->
    args = @execArgs(ctx)
    if (not args? || args.some (x) -> not x?)
      null
    else
      args?.reduce (x,y) ->
