starting halfedge implementation