implemented scheduling, still need to test fairness