switch to using events to trigger resizes and repositions