diff --git a/src_ocaml/grewpy.ml b/src_ocaml/grewpy.ml
index 9a469c250d5e1e158285bea66344d95f891bc163..061ad6aa22cf5ef635199b568e141f49f734c6de 100644
--- a/src_ocaml/grewpy.ml
+++ b/src_ocaml/grewpy.ml
@@ -166,20 +166,20 @@ let run_command request =
       begin
         try
           let corpus_index = json |> member "corpus_index" |> to_int in
-          let string_pattern = json |> member "pattern" |> to_string in
-          let pattern = Pattern.parse ~config string_pattern in
+          let pattern = Grs.request_of_json ~config (json |> member "request") in
 
           let corpus = Global.corpus_get corpus_index in
-          let matches = Array.fold_left
+          let matches = 
+            Array.fold_left
               (fun acc (id,graph) ->
-                 let matching_list = Matching.search_pattern_in_graph ~config pattern graph in
-                 (List.map
+                let matching_list = Matching.search_pattern_in_graph ~config pattern graph in
+                  (List.map
                     (fun m -> `Assoc [
-                         ("sent_id", `String id);
-                         ("matching", Matching.to_json pattern graph m)
-                       ]
+                      ("sent_id", `String id);
+                      ("matching", Matching.to_json pattern graph m)
+                      ]
                     ) matching_list
-                 ) @ acc
+                  ) @ acc
               ) [] corpus in
           Yojson.Basic.to_string
             (`Assoc [