(1) Determine distance from patch properly (also in general polygon cases) (2) Move refine() (3) Rewrite the logic of the patch (allow it to be a polygon)