Search

I tried to split this up into separate commits to make it a little more digestible.