Dealing With Crosscutting Concerns in Existing Software