making viewport rectangles optional