added AOP logging