Tons of changes, look at them carefully to see how they work.

STUFF!