article decorator aop example