Cooperating Heterogeneous Systems