refactored &viewer parameter code