better request handling