refact request method