owen1: because spawning a new thread for each incoming request can get expensive