rewriten API for special events

I dont know right now but time ago it was recommended to use implementation instead of interfaces when possible, it used to perform better and reduce js.