consider the singular, polygonal, and line-segment cases
clean up