Refactored Viewer