use BasicObject for proxies implementation
Merge branch 'basic_object_proxy'