distributed device environments