Refactor search as a partial, closes #144