Modified to return instance from constructor

Also added "show" and "close" methods and additional constructor to better control showing and closing the viewer.
Added properties to customize appearance