achieve modularity and separation of concerns through feature-oriented development