522 tableview

Solves #522, and part 1 of #509.
No tests, I know. I want to take a full day next week and try to create as many tests as I can then.