refactoring aspect argument weaving