Slater/course search

There is still work to be done on this branch, but it's largely done, and I think it's been out too long without review, so opening it now to get feedback and make the push of this to production as flawless as possible