Testing

Just a PR with some tests I've written. I want to merge it with develop so specs are a part of our main branch. Maybe we can integrate Travis CI or some other CI system to make sure our tests are always running and nothing ugly is being pushed live. The commit messages cover what's changed from the main branch. I took out the retreat tests because I don't understand what's happening well enough to write tests for it and I wanted to get this PR up asap. Retreat feature tests can be written and added to this PR. We should be good to merge when we have a good test coverage.

Holla back with thoughts if you got any.