diff --git a/DumpClasses.jrag b/DumpClasses.jrag
index d31290fafd85ee68d9aeb40cd0b9ecd0ff53e3b6..bdde28119a82bdb6556add72369d9c879fc0eb4d 100644
--- a/DumpClasses.jrag
+++ b/DumpClasses.jrag
@@ -19,12 +19,12 @@ aspect DumpClasses {
 	pStream.print(" ::= ");
 	Properties props = getProperties();
 	for (int i=0; i<props.getNumProperty(); i++) {
-	    pStream.print("<");
+// 	    pStream.print("<");
 	    pStream.print(props.getProperty(i).getId());
-	    pStream.print(":");
-	    pStream.print(props.getProperty(i).range().type());
-	    pStream.print(">");
-	    pStream.print(" ");
+// 	    pStream.print(":");
+// 	    pStream.print(props.getProperty(i).range().type());
+// 	    pStream.print(">");
+// 	    pStream.print(" ");
 	}
 	pStream.println(";");
     }
diff --git a/Types.jrag b/Types.jrag
index a24baa5fe0923620fecd35d74b4d29f26e414d4b..8778a43a1d9799b437e6350059056a65b57b55df 100644
--- a/Types.jrag
+++ b/Types.jrag
@@ -39,26 +39,28 @@ aspect Types {
 
     syn lazy Properties OwlClassDecl.getProperties() {
 	List l = new List();
-	getTopElement().collectObjectProperties(l);
-	Properties p = new Properties();
-	for (int i=0; i<l.getNumChild(); i++) {
-	    OwlObjectProperty op = (OwlObjectProperty) l.getChild(i);
-	    if (op.domainIncludes(this)) {
-		p.addProperty(op);
-	    }
-	}
-	return p;
+// 	getTopElement().collectProperties(l);
+	collectProperties(l);
+	return new Properties(l);
+// 	Properties p = new Properties();
+// 	for (int i=0; i<l.getNumChild(); i++) {
+// 	    OwlProperty op = (OwlProperty) l.getChild(i);
+// 	    if (op.domainIncludes(this)) {
+// 		p.addProperty(op);
+// 	    }
+// 	}
+// 	return p;
     }
 }
 
 aspect Properties {
-    void ASTNode.collectObjectProperties(List l) {
+    void ASTNode.collectProperties(List l) {
 	for (int i=0; i<getNumChild(); i++) {
-	    getChild(i).collectObjectProperties(l);
+	    getChild(i).collectProperties(l);
 	}
     }
 
-    void OwlObjectProperty.collectObjectProperties(List l) {
+    void OwlProperty.collectProperties(List l) {
 	l.add(this);
     }
 
diff --git a/owl.ast b/owl.ast
index e89e5503e249878ea54f3a5fe1e49269feebf52f..4b38bf321ebb9e5934090b5928832482b16e7858 100644
--- a/owl.ast
+++ b/owl.ast
@@ -25,14 +25,14 @@ OwlDataRange : ComplexElement;
 OwlDatatypeProperty : ComplexElement;
 OwlDisjointWith : ComplexElement;
 OwlEquivalentClass : ComplexElement;
-OwlFunctionalProperty : ComplexElement;
+OwlFunctionalProperty : OwlProperty;
 OwlImports : ComplexElement;
 OwlIntersectionOf : ComplexElement;
 OwlInverseOf : ComplexElement;
 OwlMinCardinality : ComplexElement;
-OwlObjectProperty : ComplexElement;
+OwlObjectProperty : OwlProperty;
 OwlOneOf : ComplexElement;
-OwlOnProperty : ComplexElement;
+OwlOnProperty : OwlProperty;
 OwlSomeValuesFrom : ComplexElement;
 OwlRestriction : ComplexElement;
 OwlUnionOf : ComplexElement;
@@ -69,3 +69,5 @@ OwlClassDecl : OClass ::= <Id:String> ;
 OwlClassUse : OClass ::= <Id:String> ;
 
 Properties ::= Property:Element*;
+
+OwlProperty : ComplexElement;