         # classroom:      {$query: {year: '2012'}}                      -> query
         # total_greats:   {key: 'greats', $query: {$count: true}}       -> query
         else
-          if args.key
-            field = args.key
-            delete args.key
-          else
-            field = key
+          field = if args.key then args.key else key
           relation = model.relation(field)
 
           # query

            queue.defer (callback) ->
              model.get field, (err, related_model) ->
                return callback(err) if err
                JSONUtils.renderJSON related_model, args, (err, value) ->
                  return callback(err) if err
                  result[key] = value
                  callback()

        # is_great: {fn: 'isGreatFor', args: [options.user]}
        else if args.fn
          queue.defer (callback) ->
            if _.isArray(args.args)
              fn_args = args.args.slice()
            else
              fn_args = if args.args then [args.args] else []
            fn_args.push((err, json) -> result[key] = json; callback())
            model[args.fn].apply(model, fn_args)

        # full_name:      'name'
        else if _.isString(args)
