tree update prototype