almost done with visual representation here -- tomorrow is the logic!