refactored req_op