method prepend_data = fun ?parent data ->
    let iter = self#prepend ?parent () in
      self#set_data data ~row:iter;
      iter