see http://storme.be/PECL.html