* Add test * handle rate limit and implement retry logic * Expose response headers into instance variables * Fix tests * Add test for client options * remove unused code * Add test case