Add an implementation of abstract AOP observer pattern