introducing AOP with aspectj