adding custom responses, better logging, and request timeouts