added with_request decorator and handling