raise ArgumentError unless constructor argument isn't a Hash