We explore the evolution benefits of adopting aspects in a J2EE setting by studying crosscutting concerns in a typical J2EE application. To identify these concerns, we take a top-down as well as a bottom-up approach. In the topdown view we focus on typical concerns that are known to be crosscutting (e.g., persistence), the way they are currently implemented and the possible gains and benefits if solved by aspects. In the bottom-up approach we take a look at the application’s source code, and apply aspect mining techniques in order to find crosscutting concerns. We discuss how such concerns can be represented in an aspect-oriented language (viz. AspectJ), and reflect on the results in terms of maintainability and evolvability of the affected system.