Updated to rspec and a ton of tests