Fractional crystallization is a method of refining substances based on differences in solubility. It fractionates via differences in crystallization (forming of crystals). If a mixture of two or more substances in solution are allowed to crystallize, for example by allowing the temperature of the solution to decrease, the precipitate will contain more of the least soluble substance. The proportion of components in the precipitate will depend on their solubility products. If the solubility products are very similar, a cascade process will be needed to effectuate a complete separation. This technique is often used in chemical engineering to obtain very pure substances, or to recover saleable products from waste solutions.