Add AOP with prototypes