     check methodName, String
     check opts, Match.Optional Match.OneOf Object, null
 
-    for param in arguments
-      callback = param if _.isFunction param
+    callback = param for param in arguments when _.isFunction param
 
     Meteor.call methodName, opts, name, link, (error, uid) ->
-      if error
-        throw new Meteor.Error '500', '[Meteor.neo4j.call] Method: ["#{methodName}"] returns error!', error
-      else
-        Meteor.neo4j.uids.set _.union(Meteor.neo4j.uids.get(), [ uid ])
-        return Meteor.neo4j.cache.get(uid, callback)
+      throw new Meteor.Error '500', '[Meteor.neo4j.call] Method: ["#{methodName}"] returns error!', error if error
+      Meteor.neo4j.uids.set _.union(Meteor.neo4j.uids.get(), [ uid ])
+      return Meteor.neo4j.cache.get(uid, callback)
   ) else undefined
 
 ###

        i = _res.length - 1

        while i >= 0
          if _res[i].indexOf('.') != -1
            _res[i] = _res[i].replace '.', '_'
          i--

        _res = _res.map (str) ->
          str = str.trim()
          if str.indexOf(' AS ') != -1
            str = _.last str.split ' '
          str

        _clauses = _.last(_res)
        if _clauses.indexOf(' ') != -1
          _clause = _.first _clauses.split ' '
          _res[_res.length - 1] = _clause

        for i of _res
          _res[i] = _res[i].trim()
          _originals[i] = _res[i]
          if _res[i].indexOf(' ') != -1
            _res[i] = _.last _res[i].split ' '
            _originals[i] = _.first _res[i].split ' '
          _data[_res[i]] = []

        data.map (result) ->
          for i of _res
            if ! !result[_res[i]]
              if _res[i].indexOf('(') != -1 and _res[i].indexOf(')') != -1
                _data[_res[i]] = result[_res[i]]
              else if _originals[i].indexOf('.') != -1 or _.isString(result[_res[i]]) or _.isNumber(result[_res[i]]) or _.isBoolean(result[_res[i]]) or _.isDate(result[_res[i]]) or _.isNaN(result[_res[i]]) or _.isNull(result[_res[i]]) or _.isUndefined(result[_res[i]])
                _data[_res[i]].push result[_res[i]]
              else
                if !!result[_res[i]].data and ! !result[_res[i]]._data and ! !result[_res[i]]._data.metadata
                  result[_res[i]].data.metadata = result[_res[i]]._data.metadata

                if !!result[_res[i]]._data and ! !result[_res[i]]._data.start and ! !result[_res[i]]._data.end and ! !result[_res[i]]._data.type
                  result[_res[i]].data.relation =
                    extensions: result[_res[i]]._data.extensions
                    start: _.last result[_res[i]]._data.start.split '/'
                    end: _.last result[_res[i]]._data.end.split '/'
                    self: _.last result[_res[i]]._data.self.split '/'
                    type: result[_res[i]]._data.type

                if !!result[_res[i]].data
                  _data[_res[i]].push result[_res[i]].data

    @returns = _res
    _data

        else
          _id = doc._id

        doc._id = _.clone _id

        @subscriptions[subsName].push _.clone doc

