zeroth version, untested, visualizations missing.