private void handleAddQuery(ProviderAddQueryRequestMessage message) {
    TimelineQuery query = message.getQuery();

    // create the provider
    TimelineProvider provider = instantiateProvider(query.getQueryClass());

    // initialize it
    provider.initialize(new ProviderContextImpl(query));

    // remember it
    providers.put(query.getQueryID(), provider);
  }
 private void handleRemoveQuery(ProviderRemoveQueryRequestMessage message) {
   // remove the provider from the map
   TimelineProvider provider = providers.remove(message.getQueryID());
   provider.shutdown();
 }