Starting to clean up the code

It's been a while since I was in here, and my past self sickens me. I'm
trying to break things up into smaller chunks so that I can work with it
easier.

I had to relax some of the testing expectations because of changes to
rspec that I still don't completely understand, but trust me; it works.