Refactored ViewerManager