Aspect–Oriented Programming (AOP) is increasingly being adopted by developers to better modularize object–oriented design by introducing crosscutting concerns. However, due to tight coupling of existing approaches with the implementing code and to the poor expressiveness of the pointcut languages a number of problems became evident. We believe that such problems could be solved shifting the focus of software development from a programming language specific implementation to application design. This work presents a possible solution based on modeling aspects at a higher level of abstraction which are, in turn, transformed to specific targets.