Modeling with Compartments