FOMUS is made up of a main library and a collection of a dozen or so modules that function like notation plug-ins. These modules are responsible for all of the complex processing and decision-making. FOMUS's main library schedules them, runs integrity checks, and provides an interface for manipulating and storing FOMUS's data structures. New modules can either replace existing ones or work alongside them. Users can also pick and choose different modules or sets of modules for different sections of a score. Future versions of FOMUS will include a description of the API (once it is stable) for writing additional modules and extending FOMUS's functionality.