Once again: heavy, heavy refactoring. This time it's meant to stay. I'm almost certain.