calling getFullDepth inside a getPartialDepth seems wrong. Perhaps rename getFullDepth if appropriate