A method for providing a shared session environment comprising: establishing a first connection with a first remote computing device to provide access to a shared session window to the first device; establishing a second connection with a second remote computing device to provide access to the shared session window to the second device; negotiating gesture capabilities with the first and second remote computing devices; receiving via the first connection data corresponding to a first gesture inputted at the shared session window displayed at the first device to interact with the shared session window; receiving via the second connection data corresponding to a second gesture inputted at the shared session window displayed at the second device to interact with the shared session window; reconciling the data corresponding to the first and second gestures to generate a modification instruction representing the operations defined by the interactions with the shared session windows at the first and second remote computing devices by employing a mapping table that maps the data corresponding to the first gesture to a first shared session command and that maps the data corresponding to the second gesture to a second shared session command; and transmitting a modified shared session window over the first and second connections to the first and second computing devices; characterised in that: said gesture capabilities are negotiated by aggregating the capabilities of the first and second remote computing devices, wherein the aggregating the capabilities comprises summing the number of simultaneous touch inputs the first remote computing device is capable of receiving and the number of simultaneous touch inputs the second remote computing device is capable of receiving, and wherein the modified shared session window is capable of receiving a number of simultaneous touch inputs equal to the sum of i) the number of simultaneous touch inputs the first remote computing device is capable of receiving and ii) the number of simultaneous touch inputs the second remove computing device is capable of receiving. establishing a first connection with a first remote computing device to provide access to a shared session window to the first device; establishing a second connection with a second remote computing device to provide access to the shared session window to the second device; negotiating gesture capabilities with the first and second remote computing devices; receiving via the first connection data corresponding to a first gesture inputted at the shared session window displayed at the first device to interact with the shared session window; receiving via the second connection data corresponding to a second gesture inputted at the shared session window displayed at the second device to interact with the shared session window; reconciling the data corresponding to the first and second gestures to generate a modification instruction representing the operations defined by the interactions with the shared session windows at the first and second remote computing devices by employing a mapping table that maps the data corresponding to the first gesture to a first shared session command and that maps the data corresponding to the second gesture to a second shared session command; and transmitting a modified shared session window over the first and second connections to the first and second computing devices; characterised in that: said gesture capabilities are negotiated by aggregating the capabilities of the first and second remote computing devices, wherein the aggregating the capabilities comprises summing the number of simultaneous touch inputs the first remote computing device is capable of receiving and the number of simultaneous touch inputs the second remote computing device is capable of receiving, and wherein the modified shared session window is capable of receiving a number of simultaneous touch inputs equal to the sum of i) the number of simultaneous touch inputs the first remote computing device is capable of receiving and ii) the number of simultaneous touch inputs the second remove computing device is capable of receiving.