add basic tree operationsg