reworked to do preemptions, but still needs handling of old requests when preempted