refact search providers into separate plugin - issue #152