Initial cut of a spreading and generic scheduler.

done.