simplified request handler, rewrote handlers to be reactive, and take an arbitrary action to do on completion (will add arbitrary on error action later), separate threadpool for timeouts