Simplified the event model

One important event (headset_found) is used for all the important
things.
Simple but working (finally)

Simple but working. Cleaned-up some code.