Refactored #descendants methods to make use of #reject and #select.