supporting multiple node levels