Context-aware retrieval for mobile devices: a tale of three systems