flat tree struct