diff --git a/parser.c b/parser.c
index 52f7b3d502624e4dee2077aa8583ddf69292a2a3..0a32c4dadc10860db6ba30c065ceec3bddf77f38 100644
--- a/parser.c
+++ b/parser.c
@@ -24,7 +24,24 @@ cons_cell* parse(char* input, int size) {
         strncpy(buffer_next, input[next_char], size - next_char);
         cons_cell* cdr_cons = parse(buffer_next, size - next_char);
         return create_cons_cell(car_cons, cdr_cons);
-    }
+    } else {
+		int first_space_idx = 0;
+	    while (input[first_space_idx] != " ")
+			first_space_idx++;
+		
+		char buff_first[500];
+		strncpy(buff_first, input, first_space_idx);
+		cons_cell* car_cons = parse(buff_first, first_space_idx);
+		char buff_other[500];
+		int next_char = first_space_idx;
+	    while (input[next_char] == ' ' && input[next_char] != NULL) {
+            next_char++;
+        }
+
+		strncpy(buff_other, input[next_char], size - next_char);
+		cons_cell* cdr_cons = parse(buff_other, size-next_char);
+		return create_cons_cell(car_cons, cdr_cons);
+	}
 }
 
 int main() {