half edge data structure added