This project focuses on the problem of making concurrent programs easier to write correctly and to implement efficiently. Modularity promotes ease of understand and maintainability, but modularity is often at odds with the discovery and exploitation of concurrency needed to get high performance while avoiding undesirable interactions and race conditions. To approach this problem, this project is developing a novel language, Panini, in which events are first-class objects which can be analyzed to plan concurrent executions. The objective is to reconcile modularity and concurrency goals so that modular designs are naturally more amenable to concurrency. Panini will be evaluated in terms of its ability to support program modularity and performance on publicly available versions of large open-source software projects on multi-core processors use. The broader impacts are to make software more reliable, maintainable, and at the same time faster. Considering that software systems are essential elements of today's society, better and faster software will directly impact society.