refactoring getter/setter @property so that nested lookups can work, ie: camera.position.x=1