http://dx.doi.org/10.1016/j.pep.2003.09.010