moved to Visualizer.js