Yes, we can make it in a way the hashes work, no problem. 

What's method_missing? method_missing is a method that gets hit every time you try to call a non existing method. So let's say someone wants to set or get some custom_field to custom data resource, he or she could just write:

```ruby
account.custom_data.custom_field = "value"
account.custom_data.custom_field #=> value
```
And we would could define it like this:

```ruby
def method_missing(meth, *args, &block)
    if meth =~ /=$/
      property_name = meth.to_s.chomp("=").camelize(:lower)
      set_property property_name, args[0]
    else
      property_name = meth.to_s.camelize(:lower)
      property = get_property property_name 
      property || super(meth, *args, &block)
    end 
  end
```

The problem with it is that we wouldn't be able to raise errors properly, i.e. if someone tries to call a method on custom_data but misspells it, such as "safe" instead of "save", he would get a nil returned (if safe isn't defined in custom_data), and the developer would think that everything is okay, but actually isn't. 

Do we want to risk that?