improve scheduler