outsourced bubbles to a flexible widget.