optimize resize function