use rect instead of point4f