Improved API for getting component in descendants