         # 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

        # can_delete: {fn: (photo, options, callback) -> }
        if _.isFunction(args.fn)
          queue.defer (callback) ->
            template = _.extend({}, args, fn: undefined)
            args.fn model, options, (err, json) ->
              result[key] = json
              callback()

            queue.defer (callback) ->
              model.get field, (err, related_model) ->
                return callback(err) if err
                # Clone the args so we don't clobber the key if we're using it for more than one model
                render_args = _.extend({}, args)
                delete render_args[field]
                JSONUtils.renderJSON related_model, render_args, (err, value) ->
                  return callback(err) if err
                  result[key] = value
                  callback()
