improved request handling