In this paper, we propose a two-level architecture for feature driven software development, consisting of a base layer for a feature’s core behaviour and a meta- layer for resolution modules that provide solutions to feature interaction problems. Whilst a standard programming language is used at the base level, e.g. an object- oriented language such as Java, we propose the use of an aspect-oriented programming language for the inherent cross-cutting concerns that exist at the meta- level. We evaluate the use of AspectJ for the implementation of interaction resolution modules at the meta-level. This evaluation is carried out through an in- depth study of an email system. We conclude that aspect-oriented approaches are highly suited for this split-level architecture and that the architecture has many benefits for feature driven software development. Finally, we also highlight a number of problems with AspectJ for our intended use, but discuss how the selection of an alternative aspect-oriented technique would avoid these problems.