     ' || ': (a, b) -> a || b
     ' == ': (a, b) -> `a == b`
     ' === ': (a, b) -> a is b
+    ' !== ': (a, b) -> `a !== b`
+    ' !=== ': (a, b) -> a isnt b
+    ' > ': (a, b) -> a > b
+    ' >= ': (a, b) -> a >= b
+    ' < ': (a, b) -> a < b
+    ' <= ': (a, b) -> a <= b
+
+  tokenRegex = /[\+\-\*\/&\|=><]/
+  dotRegex = /(\D\.)|(\.\D)/
 
   getToken = (str) ->
     for token of tokens

  @getVmValueGetter = (viewmodel, bindValue) ->
    return  -> getValue(viewmodel, bindValue, viewmodel)

  # !!!!!!!!!!!!!!!!!!!!!!!!!!!!
  # Untested

  @getVmValueSetter = ->

  @wrapTemplate = (template) ->
    viewName = template.viewName

  getValue = (container, bindValue, viewmodel) ->
    negate = bindValue.charAt(0) is '!'
    bindValue = bindValue.substring 1 if negate
    token = tokenRegex.test(bindValue) and getToken(bindValue)
    if token
      i = bindValue.indexOf(token)
      left = getValue(container, bindValue.substring(0, i), viewmodel)
      right = getValue(container, bindValue.substring(i + token.length), viewmodel)
      value = tokens[token]( left, right )
    else if dotRegex.test(bindValue)
      i = bindValue.search(dotRegex)
      i += 1 if bindValue.charAt(i) isnt '.'
      newContainer = getValue container, bindValue.substring(0, i), viewmodel
      newBindValue = bindValue.substring(i + 1)
      value = getValue newContainer, newBindValue, viewmodel
