tree writes to _data so it does not change the model