Added viewer factory to override default viewer class