pair data-problem
pointers to parent. rename _iter to iter