A computer-implemented method comprising: receiving, by a first mobile device, a first input requesting for locations of a plurality of second mobile devices, each second mobile device having been authorized by a respective user of the second device to provide location information to the first mobile device; submitting, by the first mobile device to a server in response to the first input, a shallow locate request for shallow locations of the second mobile devices, each shallow location being an estimated location of a second mobile device having a shallow level of accuracy; presenting, by the first mobile device, one or more shallow locations received from the server in response to the shallow request, each shallow location being presented in association with a second mobile device; characterised in that the method further comprises: receiving, by the first mobile device, a second input selecting a second mobile device from the one or more second mobile devices the shallow locations of which are presented by the first mobile device; submitting, by the first mobile device to the server in response to the second input, a deep locate request for a deep location of the selected second mobile device, the deep location being an estimated location of the selected second mobile device having a deep level of accuracy, the deep level of accuracy being more accurate than the shallow level of accuracy; and presenting, by the first mobile device, the deep location received from the server in response to the deep locate request, the deep location being presented in association with the selected second mobile device. receiving, by a first mobile device, a first input requesting for locations of a plurality of second mobile devices, each second mobile device having been authorized by a respective user of the second device to provide location information to the first mobile device; submitting, by the first mobile device to a server in response to the first input, a shallow locate request for shallow locations of the second mobile devices, each shallow location being an estimated location of a second mobile device having a shallow level of accuracy; presenting, by the first mobile device, one or more shallow locations received from the server in response to the shallow request, each shallow location being presented in association with a second mobile device; characterised in that the method further comprises: receiving, by the first mobile device, a second input selecting a second mobile device from the one or more second mobile devices the shallow locations of which are presented by the first mobile device; submitting, by the first mobile device to the server in response to the second input, a deep locate request for a deep location of the selected second mobile device, the deep location being an estimated location of the selected second mobile device having a deep level of accuracy, the deep level of accuracy being more accurate than the shallow level of accuracy; and presenting, by the first mobile device, the deep location received from the server in response to the deep locate request, the deep location being presented in association with the selected second mobile device. receiving, by the first mobile device, a second input selecting a second mobile device from the one or more second mobile devices the shallow locations of which are presented by the first mobile device; submitting, by the first mobile device to the server in response to the second input, a deep locate request for a deep location of the selected second mobile device, the deep location being an estimated location of the selected second mobile device having a deep level of accuracy, the deep level of accuracy being more accurate than the shallow level of accuracy; and presenting, by the first mobile device, the deep location received from the server in response to the deep locate request, the deep location being presented in association with the selected second mobile device.