named data structure
better structure
traverse children