Add descendants method, improved code, etc.