Store strings in a dynamically allocated array
Rule* next_rule = add_rule_node(&first_rule, curr_token, &tail);
                        Dependency* tail_dependencies2 = NULL;
                        curr_token = strtok(NULL, delimiter);
                        //let us build the node
                        while (curr_token != NULL) 
                        {
                            add_dependency_node(&tail_dependencies2, curr_token, &next_rule);
                            if(is_dependency_target(&first_rule, curr_token))
                            {
                                printf("Dependency %s is also a target", curr_token);
                            }
                            curr_token = strtok(NULL, delimiter);
                        }

                    } else if(line[0] == '\t'){
                        //printf("ACTION!");
                        //create an array of strings from the recipie
                        int instruction_count = 0;
                        char buffer[MAXLINE + 1];
                        strcpy(buffer, line);
                        curr_token = strtok(NULL, delimiter);
                        while (curr_token != NULL)
                        {
                            instruction_count ++;
                            curr_token = strtok(NULL, delimiter);