refactored using Shoulda Matchers