use descendent idea in widget endpoint