method insert_data = fun ?parent i data ->
    let iter = self#insert ?parent i in
      self#set_data data ~row:iter;
      iter