diff --git a/src/main.rs b/src/main.rs
index 34ddeb8..fc14210 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -151,40 +151,42 @@ fn parser(
 fn main() {
     let type_dict = Arc::new(RwLock::new(BimapTypeDict::new()));
 
-    let src = std::fs::read_to_string(
-        std::env::args().nth(1).expect("expected file name")
-    ).expect("read");
+    for mb_path in std::env::args().skip(1) {
+        let src = std::fs::read_to_string(
+            mb_path
+        ).expect("read");
 
-    let result = parser(type_dict.clone()).parse(src.clone());
-    match result {
-        Ok(morphisms) => {
-            println!("parse ok.");
-            let mut dict = type_dict.write().unwrap();
+        let result = parser(type_dict.clone()).parse(src.clone());
+        match result {
+            Ok(morphisms) => {
+                println!("parse ok.");
+                let mut dict = type_dict.write().unwrap();
 
-            for m in morphisms {
-                println!("{}\n    {}\n---> \n    {}\n{}\n\n", m.symbol,
-                    m.src_type.clone().sugar(&mut *dict).pretty(&mut *dict, 1),
-                    m.dst_type.clone().sugar(&mut *dict).pretty(&mut *dict, 1),
+                for m in morphisms {
+                    println!("{}\n    {}\n---> \n    {}\n{}\n\n", m.symbol,
+                        m.src_type.clone().sugar(&mut *dict).pretty(&mut *dict, 1),
+                        m.dst_type.clone().sugar(&mut *dict).pretty(&mut *dict, 1),
 
-                    m.expected_c_type_signature(&mut *dict),
-                );
+                        m.expected_c_type_signature(&mut *dict),
+                    );
 
-                m.generate_call(&mut *dict);
+                    m.generate_call(&mut *dict);
+                }
+            }
+            Err(errs) => {
+                errs.into_iter().for_each(|e| {
+                        Report::build(ReportKind::Error, (), e.span().start)
+                            .with_message(e.to_string())
+                            .with_label(
+                                Label::new(e.span())
+                                    .with_message(e)
+                                    .with_color(Color::Red),
+                            )
+                            .finish()
+                            .print(Source::from(&src))
+                            .unwrap()
+                        });
             }
-        }
-        Err(errs) => {
-            errs.into_iter().for_each(|e| {
-                    Report::build(ReportKind::Error, (), e.span().start)
-                        .with_message(e.to_string())
-                        .with_label(
-                            Label::new(e.span())
-                                .with_message(e)
-                                .with_color(Color::Red),
-                        )
-                        .finish()
-                        .print(Source::from(&src))
-                        .unwrap()
-                    });
         }
     }
 }