quality improved by recursively checking