Refactored promotion.rb