ImagineDesk: a software platform supporting cooperative applications