refactor for AspectJ integration