discrete scheduler