added recursive depth and collection control support