added viewporting