spawning new processes is expensive