Initial cut of a spreading and generic scheduler.

Can you wrap these test cases and put names on the fields? it's very hard to read like this.