Added TDD using Rspec. Made many modifications to the existing classes to fix more bugs