Ubiquitous Computing: Design, Implementation and Usability