Toby Also, since a lot of Extenders are just wrappers around the event system, how about we go all the way and wrap every event — removing events from the public API completely?
using when before a method name is for extending parent method? when does a extended method execute? after or before of a method? isn't it possible to run arbitrary function in both after and before a method?
please take look at here, magento 2 allows defining plugins to run before, after or around a non final method. you also can define a priority.