add ability to proxy object properties and a bit of refactoring