Added AOP functionality