implement Visualizer