Building an adaptable user experience