heterogeneous environments