recursive attributes