Lots of stuff working, lots of refactoring.