feature: it now supports the use of :before and :after function events