support for nested properties through set and get property

If internal maps are encountered then we expect that the map will wrap
(in put) and will return an unwrapped value (with get)