now depends on pecl-event