tree.reactivate() returns a promise

Close #364