+ SubTask* new_subtask;
+ SubTask** subtask_list;
+
+ /* create new subtask */
+ new_subtask = malloc(sizeof(SubTask));
+ new_subtask->subtask_name = subtask_name;
+ new_subtask->done = subtask_state;
+
+ /* add it */
+ subtask_list = state->cur_todoitem->subtask_list;
+
+ state->cur_todoitem->subtask_count += 1;
+ subtask_list = realloc(subtask_list, state->cur_todoitem->subtask_count*sizeof(SubTask*));
+ subtask_list[state->cur_todoitem->subtask_count-1] = new_subtask;
+
+ state->cur_todoitem->subtask_list = subtask_list;