support for divide&not conquer