rename recursive() -> childrenJoin()