added viewport change control