improved non-random method