more flixable type system that responds to #to_hash instead of Hash
more flixable type system that responds to #to_ary instead of Array