diff --git a/create.py b/create.py
index b51eb17475ad9422f3ba6285dc7af27073b507e5..29f051a7550e56ec0497a42b808b0aac2e1d3320 100644
--- a/create.py
+++ b/create.py
@@ -10,6 +10,7 @@ from modules.file_generator import generate_vagrantfile, generate_ansible_files
 from modules.device_creator import open_file
 from modules.routing import create_border_router
 from modules.input_argument_parser import parse_input_args
+from modules.input_file_validator import validate_device_definitions
 
 
 """ Parsing the input arguments. """
@@ -19,15 +20,21 @@ try:
     input_file_name = parse_input_args(sys.argv, flags)
 except Exception:
     print("Input arguments could not be parsed.")
-    raise
+    sys.exit(1)
 
 """ Parsing the definitions file. """
 try:
     device_definitions = open_file(input_file_name)
 except Exception:
     print("Definitions file could not be parsed.")
-    raise
+    sys.exit(1)
 
+""" Validating device definitions. """
+try:
+    validate_device_definitions(device_definitions)
+except Exception:
+    print("Device definition validation was not sussessful.")
+    sys.exit(1)
 
 
 # TODO
diff --git a/modules/input_argument_parser.py b/modules/input_argument_parser.py
index d40779088fbf8fbf4f8161713f9c09ea3c0d16da..41568787feaae4ca945944d6956e68ccd260915f 100644
--- a/modules/input_argument_parser.py
+++ b/modules/input_argument_parser.py
@@ -12,6 +12,8 @@ def parse_input_args(argv, flags):
 
     input_file_name = None
 
+    # TODO implement parsing args using an external module
+
     if len(argv) == 3:
         if str(argv[1]) == "-l":
             flags["ansible_local"] = True
diff --git a/modules/input_file_validator.py b/modules/input_file_validator.py
new file mode 100644
index 0000000000000000000000000000000000000000..bd38f6f0696f5f206b70d0a7151efd598d2438ba
--- /dev/null
+++ b/modules/input_file_validator.py
@@ -0,0 +1,11 @@
+""" This module contains functions for input file validation. """
+
+def validate_device_definitions(definitions):
+    """
+    This function validates the device definitions structure and throws an
+    error if the syntax is not as expected.
+
+    :param definitions: a device definition structure (dictionary)
+    """
+
+    # TODO implement validation