new approach to viewer toggling
fixed typos
children don't need to know about viewer properties
fix conflict
Merge branch 'viewer-state-refactor'