Describir: Modular Software Design with Crosscutting Interfaces