introduces ViewTemplate