_I'm struggling to see where we take the user input for the task name._ the `command` variable will have `exit` or whatever, right? and the `new ` will actually look like `new Buy Milk` so take the string and split it into a list of strings, breaking each string on the character. ```python txt = "welcome to the jungle" x = txt.split() print(x) # ['welcome', 'to', 'the', 'jungle'] ``` BUT Ulas says ```python txt = "new Buy Milk" t = txt.split() print(t) command = t[0] rest = t[1:] rest = " ".join(rest) print(command, ' - ', rest) ``` and maybe the right thing to do is to change the `command = input("Tasty> ")` to something like `command, rest = tasty.prompt_user("Tasty> ")` then all the "words" after the "new" will be what you pull together to name the task? so `prompt-user(self, prompt)` becomes a method which asks for the user's input (using input(prompt)) ```python def prompt_user(self, prompt): inp = input(prompt) # lookup how to split words into words[] ``` ## saving? a Hint ```python with open("saved_data.json", "w") as fp: json.dump(self.tasks,fp) ```