improving preemption mechanism