Update PatValue to be an object with properties instead of an Array
Collate the get/set/del sub methods into one private 'traverse' method
Fix typos