     column: (c) ->
         atom = _.firstOrSelf(c)
         alias = _.secondOrNull(c)
-        return @_doColumn(atom, alias, true)
-
-    _doColumn: (atom, alias, addAlias = false) ->
+        return @_doAtom(atom, alias, true)
+
+    _doAtom: (atom, alias, addAlias = false) ->
         token = @tokenizeAtom(atom)
         model = @findColumnModel(token)
         s = @_doToken(token, model)



    relop: (left, op, right) ->
        l = @_doColumn(left)
        
        # MUST: replace with data driven approach
        op = op.toUpperCase()


    orderBy: (c) -> @doList(c.orderings, @ordering, ', ', ' ORDER BY ')

    grouping: (atom) -> @_doAtom(atom)

    ordering: (o) ->
        s = @_doAtom(_.firstOrSelf(o))
        dir = if _.secondOrNull(o) == 'DESC' then 'DESC' else 'ASC'

        "#{s} #{dir}"
