separated desktop handling functionality