diff --git a/src/main/grammar/RelAstGrammar.bnf b/src/main/grammar/RelAstGrammar.bnf
index fa241e1c37e1ec6594a4a1a05d5773573f46a49f..c0a5b23c9153beebde6744c8317fbfad13f71d6d 100644
--- a/src/main/grammar/RelAstGrammar.bnf
+++ b/src/main/grammar/RelAstGrammar.bnf
@@ -11,6 +11,8 @@
   elementTypeHolderClass="org.jastadd.tooling.parser.RelAstGrammarTypes"
   elementTypeClass="org.jastadd.tooling.parser.RelAstGrammarElementType"
   tokenTypeClass="org.jastadd.tooling.parser.RelAstGrammarTokenType"
+
+  psiImplUtilClass="org.jastadd.tooling.psi.impl.RelAstGrammarPsiImplUtil"
 }
 
 relAstGrammarFile ::= comment* declaration*
@@ -19,11 +21,11 @@ declaration ::= (type_decl | relation) comment*
 
 comment ::= (WHITESPACE | MULTILINECOMMENT | DOCCOMMENT | SINGLELINECOMMENT)
 
-type_decl ::= ABSTRACT? ID (COL ID)? (ASSIGN component*)? SCOL
+type_decl ::= ABSTRACT? ID (COL ID)? (ASSIGN (component | nta_component)*)? SCOL
 
-component ::= (SLASH actual_component SLASH) | actual_component
+nta_component ::= SLASH component SLASH
 
-actual_component ::= (ID (COL ID)? STAR?) | (LBRACKET ID (COL ID)? RBRACKET) | (LT ID (COL (java_type_use))? GT)
+component ::= (ID (COL ID)? STAR?) | (LBRACKET ID (COL ID)? RBRACKET) | (LT ID (COL (java_type_use))? GT)
 
 java_type_use ::=  parameterized_java_type_use | simple_java_type_use