added cdf()