1. A method of controlling a device remotely, the method comprising: storing at a controllable device an association between a data structure stored on the controllable device and credential information of one or more remote devices, where the data structure comprises a table listing: functions performed by the controllable device; and instructions to perform the functions; transmitting availability of the controllable device for control by the one or more remote devices; receiving, in response to the transmitting, a request for authorization to control said the controllable device from one of the remote devices, the request including credential information of the one remote device; accepting the request if the credential information of the one remote device is recognized by the controllable device; and transmitting from the controllable device to the one remote device a data structure associated with the one remote device.