live search + promises