OpenMx has been written using modular programming techniques in the C and R languages with the intent that it will be maintained and extended by members of the research community. Modular programming design means that the code is written so that each section of code operates independently and is accessed via a well–defined interface. This means that many programmers can be working on the code simultaneously as long as each module of code maintains the expected behavior from its interface. In order to work on part of OpenMx, one does not need to understand the inner workings of all other modules; it is only necessary to understand and adhere to the interface specifics for that specific module.