refined aop working, still i have to refactor a little