smarter relayout triggers