             data[nodeAlias] = node.get()
           else
             data[nodeAlias] = node
-      callback data, rowId
+      callback data, rowId, @_cursor
       break if firstOnly
-    return undefined
+    return


  ###
  @locus Server
  @summary Shortcut for `forEach` method, see more info below.
  @name each
  @class Neo4jCursor
  @returns {undefined}
  ###
  each: (callback) -> @forEach callback

  ###
  @locus Server
  @summary Iterates though Neo4j query results. If query was passed with `reactive` option - data will be updated each event loop.
  @name forEach
  @class Neo4jCursor
  @param {Function} callback - Callback function, with `row`, `num` arguments
  @returns {undefined}
  ###
  forEach: (callback, firstOnly) ->

      data.push row
    , firstOnly
    data

  ###
  @locus Server
  @summary Move cursor to first item and return it
  @name first
  @class Neo4jCursor
  @returns {[Object]} - Array of nodes or undefined if cursor has no items
  ###
  first: -> 
    __wait (fut) => 
      @_current = 0
      @hasNext = if @_cursor.length > 1 then true else false
      @hasPrevious = false
      fut.return @_cursor[0]

  ###
  @locus Server
  @summary Get current nodes on cursor
  @name current
  @class Neo4jCursor
  @returns {[Object]} - Array of nodes
  ###
  current: -> __wait (fut) => fut.return @_cursor[@_current]

  ###
  @locus Server
  @summary Go to next item on cursor and return it
  @name next
  @class Neo4jCursor
  @returns {[Object]} - Array of nodes, or `undefined` if no next item
  ###
  next: -> 
    if @hasNext
      __wait (fut) => 
        if @_current <= @length - 1
          ++@_current
          @hasNext = if @_current is @length - 1 then false else true
          @hasPrevious = true
          fut.return @_cursor[@_current]

  ###
  @locus Server
  @summary Go to previous item on cursor and return it
  @name previous
  @class Neo4jCursor
  @returns {[Object]} - Array of nodes, or `undefined` if no previous item
  ###
  previous: -> 
    if @hasPrevious
      __wait (fut) => 
        if @_current >= 1
          --@_current
          @hasNext = true
          @hasPrevious = if @_current is 0 then false else true
          fut.return @_cursor[@_current]

  ###
  @locus Server
