refactoring to aspects