backend mostly done. next up is visualizing it.