add level traverse