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

I think some comment describing the semantic intent of these construction parameters would be in order.