more details on what viewport does.