now can accept empty path when .each() or .forIn()