add tree function