3ML is based on a plugin system. This means that For each instrument/datum, there is a plugin that holds the data, reads a model, and returns a likelihood. This is how we achieve the multi-messenger paradigm. A plugin handles its likelihood call internally and the likelhoods are combined within 3ML during a fit.