fixed get_descendants to that it works with previous specification
merged