1) pass priority preemption tests; 2) add design doc