//get the target name
            targets = strtok(line, " ");
            printf("%s \n", targets);

            //create the Rule datatype
            if (curr_rule == NULL){
                curr_rule = malloc(sizeof(Rule));
                head = curr_rule;
            }else{
                Rule * new_rule = malloc(sizeof(Rule));
                (curr_rule -> next_rule) = new_rule;
                curr_rule = new_rule;
            }
            curr_rule -> next_rule = NULL;

            //set the name properly
            (curr_rule -> target) = malloc(sizeof(char) * (strlen(targets) + 1)); 
            strncpy(curr_rule -> target, targets, sizeof(char) * (strlen(targets) + 1));
            (curr_rule -> target)[strlen(curr_rule -> target)] = '\0';

            //link the dependencies
            targets = strtok(NULL, " ");
            while (targets != NULL){
                printf("%s \n", targets);
                targets = strtok(NULL, " ");
                if (targets != NULL){
                    link_dependencies(targets, curr_dependency, head);
                }
            }