diff --git a/TexSoup/data.py b/TexSoup/data.py
index f7279c8..58cd070 100644
--- a/TexSoup/data.py
+++ b/TexSoup/data.py
@@ -1317,7 +1317,7 @@ class TexArgs(list):
         """
         arg = self.__coerce(arg)
 
-        if isinstance(arg, TexGroup):
+        if isinstance(arg, (TexGroup, TexCmd)):
             super().insert(i, arg)
 
         if len(self) <= 1:
diff --git a/TexSoup/reader.py b/TexSoup/reader.py
index 3347393..fd53989 100644
--- a/TexSoup/reader.py
+++ b/TexSoup/reader.py
@@ -391,7 +391,7 @@ def read_arg_required(
        b. A curly-brace delimiter. If the required argument is brace-delimited,
           the contents of the brace group are used as the argument.
        c. Spacer or not, if a brace group is not found, simply use the next
-          character.
+          character, unless it is a backslash, in which case use the full command name
 
     :param Buffer src: a buffer of tokens
     :param TexArgs args: existing arguments to extend
@@ -422,7 +422,12 @@ def read_arg_required(
             n_required -= 1
             continue
         elif src.hasNext() and n_required > 0:
-            args.append('{%s}' % next(src))
+            next_token = next(src)
+            if next_token.category == TC.Escape:
+                name, _ = read_command(src, 0, 0, tolerance=tolerance, mode=mode)
+                args.append(TexCmd(name, position=next_token.position))
+            else:
+                args.append('{%s}' % next_token)
             n_required -= 1
             continue
 

diff --git a/tests/test_parser.py b/tests/test_parser.py
index 136710e..bb175ff 100644
--- a/tests/test_parser.py
+++ b/tests/test_parser.py
@@ -384,6 +384,14 @@ def test_def_item():
     assert soup.item is not None
 
 
+def test_def_without_braces():
+    """Tests that def without braces around the new command parses correctly"""
+    soup = TexSoup(r"\def\acommandname{replacement text}")
+    assert len(soup.find("def").args) == 2
+    assert str(soup.find("def").args[0]) == r"\acommandname"
+    assert str(soup.find("def").args[1]) == "{replacement text}"
+
+
 def test_grouping_optional_argument():
     """Tests that grouping occurs correctly"""
     soup = TexSoup(r"\begin{Theorem}[The argopt contains {$]\int_\infty$} the square bracket]\end{Theorem}")

\def\command not parsed correctly
For example, `\def\arraystretch{1.1}` will be parsed as `\def{\}{arraystretch}{1.1}`. The bad part of this result is it breaks the balance of braces as `\}` is escaped. 
tests/test_parser.py::test_def_without_braces
TexSoup/__init__.py::TexSoup.TexSoup TexSoup/category.py::TexSoup.category.categorize TexSoup/data.py::TexSoup.data.TexArgs TexSoup/data.py::TexSoup.data.TexArgs.__contains__ TexSoup/data.py::TexSoup.data.TexArgs.__getitem__ TexSoup/data.py::TexSoup.data.TexArgs.__repr__ TexSoup/data.py::TexSoup.data.TexArgs.__str__ TexSoup/data.py::TexSoup.data.TexArgs.append TexSoup/data.py::TexSoup.data.TexArgs.clear TexSoup/data.py::TexSoup.data.TexArgs.extend TexSoup/data.py::TexSoup.data.TexArgs.insert TexSoup/data.py::TexSoup.data.TexArgs.pop TexSoup/data.py::TexSoup.data.TexArgs.remove TexSoup/data.py::TexSoup.data.TexArgs.reverse TexSoup/data.py::TexSoup.data.TexCmd TexSoup/data.py::TexSoup.data.TexEnv TexSoup/data.py::TexSoup.data.TexEnv.__init__ TexSoup/data.py::TexSoup.data.TexExpr.__eq__ TexSoup/data.py::TexSoup.data.TexExpr.all TexSoup/data.py::TexSoup.data.TexExpr.append TexSoup/data.py::TexSoup.data.TexExpr.contents TexSoup/data.py::TexSoup.data.TexExpr.insert TexSoup/data.py::TexSoup.data.TexExpr.remove TexSoup/data.py::TexSoup.data.TexExpr.string TexSoup/data.py::TexSoup.data.TexGroup.parse TexSoup/data.py::TexSoup.data.TexNamedEnv TexSoup/data.py::TexSoup.data.TexNode.__iter__ TexSoup/data.py::TexSoup.data.TexNode.__match__ TexSoup/data.py::TexSoup.data.TexNode.all TexSoup/data.py::TexSoup.data.TexNode.append TexSoup/data.py::TexSoup.data.TexNode.args TexSoup/data.py::TexSoup.data.TexNode.char_pos_to_line TexSoup/data.py::TexSoup.data.TexNode.children TexSoup/data.py::TexSoup.data.TexNode.contents TexSoup/data.py::TexSoup.data.TexNode.copy TexSoup/data.py::TexSoup.data.TexNode.count TexSoup/data.py::TexSoup.data.TexNode.delete TexSoup/data.py::TexSoup.data.TexNode.descendants TexSoup/data.py::TexSoup.data.TexNode.find TexSoup/data.py::TexSoup.data.TexNode.find_all TexSoup/data.py::TexSoup.data.TexNode.insert TexSoup/data.py::TexSoup.data.TexNode.name TexSoup/data.py::TexSoup.data.TexNode.remove TexSoup/data.py::TexSoup.data.TexNode.replace TexSoup/data.py::TexSoup.data.TexNode.replace_with TexSoup/data.py::TexSoup.data.TexNode.string TexSoup/data.py::TexSoup.data.TexNode.text TexSoup/data.py::TexSoup.data.TexText TexSoup/data.py::TexSoup.data.TexText.__contains__ TexSoup/data.py::TexSoup.data.TexText.__eq__ TexSoup/data.py::TexSoup.data.TexText.__repr__ TexSoup/data.py::TexSoup.data.TexText.__str__ TexSoup/reader.py::TexSoup.reader.make_read_peek TexSoup/reader.py::TexSoup.reader.read_arg TexSoup/reader.py::TexSoup.reader.read_arg_required TexSoup/reader.py::TexSoup.reader.read_args TexSoup/reader.py::TexSoup.reader.read_command TexSoup/reader.py::TexSoup.reader.read_env TexSoup/reader.py::TexSoup.reader.read_item TexSoup/reader.py::TexSoup.reader.read_math_env TexSoup/reader.py::TexSoup.reader.read_skip_env TexSoup/reader.py::TexSoup.reader.read_spacer TexSoup/tokens.py::TexSoup.tokens.next_token TexSoup/tokens.py::TexSoup.tokens.tokenize TexSoup/tokens.py::TexSoup.tokens.tokenize_command_name TexSoup/tokens.py::TexSoup.tokens.tokenize_escaped_symbols TexSoup/tokens.py::TexSoup.tokens.tokenize_ignore TexSoup/tokens.py::TexSoup.tokens.tokenize_line_break TexSoup/tokens.py::TexSoup.tokens.tokenize_line_comment TexSoup/tokens.py::TexSoup.tokens.tokenize_math_asym_switch TexSoup/tokens.py::TexSoup.tokens.tokenize_math_sym_switch TexSoup/tokens.py::TexSoup.tokens.tokenize_spacers TexSoup/tokens.py::TexSoup.tokens.tokenize_string TexSoup/tokens.py::TexSoup.tokens.tokenize_symbols TexSoup/utils.py::TexSoup.utils.Buffer TexSoup/utils.py::TexSoup.utils.Buffer.__getitem__ TexSoup/utils.py::TexSoup.utils.Buffer.backward TexSoup/utils.py::TexSoup.utils.Buffer.forward TexSoup/utils.py::TexSoup.utils.Buffer.forward_until TexSoup/utils.py::TexSoup.utils.CharToLineOffset TexSoup/utils.py::TexSoup.utils.MixedBuffer.__init__ TexSoup/utils.py::TexSoup.utils.Token.__add__ TexSoup/utils.py::TexSoup.utils.Token.__contains__ TexSoup/utils.py::TexSoup.utils.Token.__eq__ TexSoup/utils.py::TexSoup.utils.Token.__getitem__ TexSoup/utils.py::TexSoup.utils.Token.__hash__ TexSoup/utils.py::TexSoup.utils.Token.__iadd__ TexSoup/utils.py::TexSoup.utils.Token.__iter__ TexSoup/utils.py::TexSoup.utils.Token.__radd__ TexSoup/utils.py::TexSoup.utils.Token.lstrip TexSoup/utils.py::TexSoup.utils.Token.rstrip TexSoup/utils.py::TexSoup.utils.to_list tests/test_parser.py::test_commands_only tests/test_parser.py::test_commands_envs_only tests/test_parser.py::test_commands_envs_text tests/test_parser.py::test_text_preserved tests/test_parser.py::test_command_name_parse tests/test_parser.py::test_command_env_name_parse tests/test_parser.py::test_commands_without_arguments tests/test_parser.py::test_unlabeled_environment tests/test_parser.py::test_ignore_environment tests/test_parser.py::test_inline_math tests/test_parser.py::test_escaped_characters tests/test_parser.py::test_math_environment_weirdness tests/test_parser.py::test_tokenize_punctuation_command_names tests/test_parser.py::test_item_parsing tests/test_parser.py::test_item_argument_parsing tests/test_parser.py::test_comment_escaping tests/test_parser.py::test_comment_unparsed tests/test_parser.py::test_comment_after_escape tests/test_parser.py::test_items_with_labels tests/test_parser.py::test_multiline_args tests/test_parser.py::test_nested_commands tests/test_parser.py::test_def_item tests/test_parser.py::test_grouping_optional_argument tests/test_parser.py::test_basic_whitespace tests/test_parser.py::test_whitespace_in_command tests/test_parser.py::test_math_environment_whitespace tests/test_parser.py::test_non_letter_commands tests/test_parser.py::test_math_environment_escape tests/test_parser.py::test_punctuation_command_structure tests/test_parser.py::test_non_punctuation_command_structure tests/test_parser.py::test_allow_unclosed_non_curly_braces tests/test_parser.py::test_buffer tests/test_parser.py::test_to_buffer tests/test_parser.py::test_unclosed_commands tests/test_parser.py::test_unclosed_environments tests/test_parser.py::test_unclosed_math_environments tests/test_parser.py::test_arg_parse tests/test_parser.py::test_tolerance_env_unclosed