class OrderedHash

def self.[](*args)

def self.[](*args)
  ordered_hash = new
  if args.length == 1 && args.first.is_a?(Array)
    args.first.each do |key_value_pair|
      next unless key_value_pair.is_a?(Array)
      ordered_hash[key_value_pair[0]] = key_value_pair[1]
    end
    return ordered_hash
  end
  unless args.size.even?
    raise ArgumentError.new("odd number of arguments for Hash")
  end
  args.each_with_index do |val, ind|
    next if ind.odd?
    ordered_hash[val] = args[ind + 1]
  end
  ordered_hash
end