added re-implementation of [perrin,2012]