add preemptablequeue plus some tests