added smart viewport