follow _deep_collection_ refactoring