Refactor scheduler, use generic scheduler everywhere, delete old code.

done and done.