Revise Viewer interface

See discussion at #39.

Fixes issue #39.