Refactor specs and code
Merge branch 'refactor'

* Merging @kchien's refactor branch to improve specs, FactoryGirl, etc.