Abstract: A Functional Mock-up Unit (FMU) is defined as a model that realizes the Functional Mock-up Interface (FMI) which provides a standard interface for dynamic system models to run in both model-exchange and co-simulation settings. While the standard provides a solid model interface specification, it does not provide its user with any guidelines on how to develop FMUs and how to integrate them for co-simulation. In this paper, MOKA, an object-oriented co-simulation framework for FMUs, is introduced. Based on FMI, MOKA is designed to serve as an overall simulation framework that provides a C++ API for developing FMUs and co-simulation capabilities for integrating and executing multiple FMUs to perform a scenario. FMI specification is mapped to an object oriented framework that leads to a modular structure for FMUs. This approach has the potential to make the process of developing FMUs easier with a view towards maintenance and extendability. By modelling co-simulation scenarios as finite state machines, particular set of FMUs can be cosimulated at systems overall discrete state and overall system state transitions can be defined over the FMU states.