implemented downsweep