fill regions by subpolygon, use subcollections