findIsolatedAreas is behaving like O(n^3)

must optimise