A computer-implemented method, comprising: facilitating, at a communication server, a communication session between a mobile device and a terminal device, wherein the mobile device is configured to execute a mobile application, wherein the mobile application includes an input element at an initial state, and wherein the mobile application is remotely controlled by the terminal device; receiving, at the communication server, a data stream during the communication session, wherein the data stream includes content data, wherein the content data includes an object presented by the mobile application, and wherein the object represents the input element; transmitting, by the communication server, the data stream during the communication session, wherein the content data is configured to cause the object to be displayed at the terminal device when the data stream is received at the terminal device; detecting, by the communication server or the terminal device, an input event associated with the object, and generated at the terminal device, wherein, if the input event is detected by the communication server, the input event is detected by receiving, at the communication server, data representing the input event generated at the terminal device; generating, by the communication server or the terminal device, control data when the input event is detected; and transmitting, by the communication server or the terminal device, the control data, wherein the control data is configured to modify the initial state of the input element included in the mobile application when the control data is received at the mobile device; characterised in that, when the input element is marked as containing sensitive information in a program code of the mobile application, the data stream further includes a field mask generated by the mobile application, wherein the field mask is configured to mask the input element that includes sensitive information and prevent the object from being viewable when the content data is displayed at the terminal device. facilitating, at a communication server, a communication session between a mobile device and a terminal device, wherein the mobile device is configured to execute a mobile application, wherein the mobile application includes an input element at an initial state, and wherein the mobile application is remotely controlled by the terminal device; receiving, at the communication server, a data stream during the communication session, wherein the data stream includes content data, wherein the content data includes an object presented by the mobile application, and wherein the object represents the input element; transmitting, by the communication server, the data stream during the communication session, wherein the content data is configured to cause the object to be displayed at the terminal device when the data stream is received at the terminal device; detecting, by the communication server or the terminal device, an input event associated with the object, and generated at the terminal device, wherein, if the input event is detected by the communication server, the input event is detected by receiving, at the communication server, data representing the input event generated at the terminal device; generating, by the communication server or the terminal device, control data when the input event is detected; and transmitting, by the communication server or the terminal device, the control data, wherein the control data is configured to modify the initial state of the input element included in the mobile application when the control data is received at the mobile device; characterised in that, when the input element is marked as containing sensitive information in a program code of the mobile application, the data stream further includes a field mask generated by the mobile application, wherein the field mask is configured to mask the input element that includes sensitive information and prevent the object from being viewable when the content data is displayed at the terminal device.