diff --git a/src/main/grammar/Aspect.bnf b/src/main/grammar/Aspect.bnf
index c8885804b1b3bc4202ed34439788d51afa75890a..45f4a3caa18fbdf307aa5670f633d77276c88670 100644
--- a/src/main/grammar/Aspect.bnf
+++ b/src/main/grammar/Aspect.bnf
@@ -78,6 +78,10 @@ aspect_body_declaration ::= ( aspect_refine_inh_equation
                             | aspect_cache_declaration )
 
 aspect_class_declaration ::= modifiers class_declaration
+{
+  implements="org.jastadd.tooling.aspect.psi.JastAddAspectJavaExtension"
+  extends="org.jastadd.tooling.aspect.psi.impl.JastAddAspectJavaImplExtension"
+}
 
 aspect_interface_declaration ::= modifiers INTERFACE IDENTIFIER type_parameters? (EXTENDS type_name_list)? LBRACE aspect_interface_member_declaration* RBRACE
 
@@ -208,6 +212,10 @@ name_name ::= java_identifier (DOT java_identifier)*
 name_list ::= name_name (COMMA name_name)*
 
 expression ::= lambda_expression | ( conditional_expression (assignment_operator expression)? )
+{
+  implements="org.jastadd.tooling.aspect.psi.JastAddAspectJavaExtension"
+  extends="org.jastadd.tooling.aspect.psi.impl.JastAddAspectJavaImplExtension"
+}
 
 assignment_operator ::= ASSIGN | STARASSIGN | SLASHASSIGN | REMASSIGN | PLUSASSIGN | MINUSASSIGN | LSHIFTASSIGN | RSIGNEDSHIFTASSIGN | RUNSIGNEDSHIFTASSIGN | ANDASSIGN | XORASSIGN | ORASSIGN
 
@@ -305,6 +313,10 @@ annotation ::= ( normal_annotation | single_member_annotation | marker_annotatio
 
 // should be parsed after circular and in collection attributes
 expression_in_brackets ::= LBRACKET_ANYTHING_RBRACKET // LBRACKET expression RBRACKET
+{
+  implements="org.jastadd.tooling.aspect.psi.JastAddAspectJavaExtension"
+  extends="org.jastadd.tooling.aspect.psi.impl.JastAddAspectJavaImplExtension"
+}
 
 // at symbol only in these rules
 marker_annotation ::= AT_NAME
diff --git a/src/main/java/org/jastadd/tooling/aspect/JavaLanguageInjector.java b/src/main/java/org/jastadd/tooling/aspect/JavaLanguageInjector.java
index b07e71120c9009083ea979d5470f9abd8113a8a3..13770ce19fd2a25f4a26ec253a9f7f9a0624ed83 100644
--- a/src/main/java/org/jastadd/tooling/aspect/JavaLanguageInjector.java
+++ b/src/main/java/org/jastadd/tooling/aspect/JavaLanguageInjector.java
@@ -22,14 +22,10 @@ public class JavaLanguageInjector implements LanguageInjector {
   @Override
   public void getLanguagesToInject(@NotNull PsiLanguageInjectionHost host, @NotNull InjectedLanguagePlaces injectionPlacesRegistrar) {
     if (host.isValidHost()) {
-      if (host instanceof JastAddAspectExpressionInBrackets) {
-        // TODO
-      } else if (host instanceof JastAddAspectNormalAnnotation) {
+      if (host instanceof JastAddAspectNormalAnnotation) {
         // TODO
       } else if (host instanceof JastAddAspectSingleMemberAnnotation) {
         // TODO
-      } else if (host instanceof JastAddAspectClassDeclaration) {
-        // TODO
       } else if (host instanceof JastAddAspectInterfaceDeclaration) {
         // TODO
       } else if (host instanceof JastAddAspectEnumDeclaration) {
@@ -37,7 +33,13 @@ public class JavaLanguageInjector implements LanguageInjector {
       } else if (host instanceof JastAddAspectAnnotationTypeDeclaration) {
         // TODO
       } else if (host instanceof JastAddAspectBlock) {
-        injectionPlacesRegistrar.addPlace(JavaLanguage.INSTANCE, new TextRange(0, host.getTextLength()), "class X { public void m()", "}");
+        injectionPlacesRegistrar.addPlace(JavaLanguage.INSTANCE, new TextRange(1, host.getTextLength() - 1), "class X { public void m() {", "}}");
+      } else if (host instanceof JastAddAspectExpression) {
+        injectionPlacesRegistrar.addPlace(JavaLanguage.INSTANCE, new TextRange(0, host.getTextLength()), "class X { public void m() {Object x = ", ";}}");
+      } else if (host instanceof JastAddAspectExpressionInBrackets) {
+        injectionPlacesRegistrar.addPlace(JavaLanguage.INSTANCE, new TextRange(1, host.getTextLength() - 1), "class X { public void m() {Object x = ", ";}}");
+      } else if (host instanceof JastAddAspectAspectClassDeclaration) {
+        injectionPlacesRegistrar.addPlace(JavaLanguage.INSTANCE, new TextRange(0, host.getTextLength()), "", "");
       }
     }
   }