added support for single polygons in erase function
first pass at donuts feature