Lots of stuff

Mostly feature-complete at this point, just need some more student
functionality.