Changed direct_children to children and implemented descendants