Redo threading entirely. Add queue queues