removed awkward abstraction

this was kind of inconsistent/asymmetrical because no other handler
delegates the underlying logic to separate functions
added search functionality

rather crude due to lack of abstractions (channel/conversation
discovery, URI generation)