Improve the exception message
Make the method private
Use Ruby 1.9 hash syntax