There will definitely be multiple ways to trigger the search (enter in a text box, for instance). Consider factoring out the creation of the event stream from the processing.