@@ -0,0 +1,888 @@
+package seedu.task.logic.commands;%0A%0Aimport java.util.HashMap;%0Aimport java.util.Optional;%0A%0Apublic class CommandInput %7B%0A    private String command;%0A    private String mainInput;%0A    private HashMap%3CString, String%3E keywordArguments;%0A    %0A    public CommandInput(String command, String mainInput, HashMap%3CString, String%3E keywordArguments) %7B%0A        this.command = command;%0A        this.mainInput = mainInput;%0A        this.keywordArguments = new HashMap%3CString, String%3E(keywordArguments);%0A    %7D%0A    %0A    public String getCommand() %7B%0A        return command;%0A    %7D%0A    %0A    public String getMainInput() %7B%0A        return mainInput;%0A    %7D%0A    %0A    public Optional%3CString%3E getKeywordArgument(String keyword) %7B%0A        if (keywordArguments.containsKey(keyword)) %7B%0A            return Optional.of(keywordArguments.get(keyword));%0A        %7D else %7B%0A            return Optional.empty();%0A        %7D%0A    %7D%0A%7D%0A

Create class to encapsulate Command inputs