fix structure changed event firing, and null handling in tree path