only one viewer class now
need some labor work on refine the interface