Implement new viewer3