http://dx.doi.org/doi:10.1016/S0021-9991(03)00156-6