prepare for non-square selection areas; refactor bounds to use northwest/southeast corner points and width, computing the area center point from those (rather than setting it directly)