merged Viewer class