Add thread spawner interface, and types