many changes including get/putSurePath() is upgraded to support arrays
overrode merge