diff --git a/package.json b/package.json
index e19d7864f5a8505a7c03d1f765b600dd99460e0e..a595603a7f2c0f377297028ba25e7ee73e2b47a3 100644
--- a/package.json
+++ b/package.json
@@ -26,7 +26,7 @@
     "codemirror": "5.25.2"
   },
   "devDependencies": {
-    "@angular/cli": "1.0.1",
+    "@angular/cli": "^1.7.3",
     "@angular/compiler-cli": "^4.0.0",
     "@types/jasmine": "2.5.38",
     "@types/node": "~6.0.60",
@@ -36,9 +36,9 @@
     "karma": "~1.4.1",
     "karma-chrome-launcher": "~2.0.0",
     "karma-cli": "~1.0.1",
+    "karma-coverage-istanbul-reporter": "^0.2.0",
     "karma-jasmine": "~1.1.0",
     "karma-jasmine-html-reporter": "^0.2.2",
-    "karma-coverage-istanbul-reporter": "^0.2.0",
     "protractor": "~5.1.0",
     "ts-node": "~2.0.0",
     "tslint": "~4.5.0",
diff --git a/src/app/member.ts b/src/app/member.ts
index 6327b45536088600ae88c0b382d15e0d79272886..55a0ca5c0af06013ed56b671315ac0b07033a131 100644
--- a/src/app/member.ts
+++ b/src/app/member.ts
@@ -4,37 +4,50 @@ import {TypeRef} from './type-ref';
 
 export class Member {
   name: string;
-  type: TypeRef;
+  type?: TypeRef;
   doc: Doc;
   parameters: Parameter[];
   throws: TypeRef[];
 
+  constructor(name: string, type: TypeRef, doc: Doc, parameters: Parameter[],
+      throws: TypeRef[]) {
+    this.name = name;
+    this.type = type;
+    this.doc = doc;
+    this.parameters = parameters;
+    this.throws = throws;
+  }
+
+  get isVoid(): boolean {
+    return this.type.isVoid;
+  }
+
   static fromJson(json: any): Member {
     var params: Parameter[] = [];
     var doc: Doc = undefined;
+    var name: string = json.name as string;
     if (json.doc) {
       doc = Doc.fromJson(json.doc);
     }
     if (json.params) {
-      params = json.params as Parameter[];
+      params = json.params.map(param => Parameter.fromJson(param));
     }
     var throws: TypeRef[] = undefined;
     if (json.throws) {
       throws = (json.throws as TypeRef[]).map(TypeRef.fromJson);
     }
     if (json.type) {
-      return Object.assign({}, json, {
-        type: TypeRef.fromJson(json.type),
-        parameters: params.map(param => Parameter.fromJson(param)),
-        doc: doc,
-        throws: throws,
-      });
+      return new Member(name,
+          TypeRef.fromJson(json.type),
+          doc,
+          params,
+          throws);
     } else {
-      return Object.assign({}, json, {
-        parameters: params.map(param => Parameter.fromJson(param)),
-        doc: doc,
-        throws: throws,
-      });
+      return new Member(name,
+          undefined,
+          doc,
+          params,
+          throws);
     }
   }
 }
diff --git a/src/app/type-details.component.html b/src/app/type-details.component.html
index bebc8c682540d895bc99f77646887882ace9dd0e..6d59d542f2ffcd70d0257e8978e8d05832b23b63 100644
--- a/src/app/type-details.component.html
+++ b/src/app/type-details.component.html
@@ -109,7 +109,7 @@
       <p *ngIf="member.doc" [innerHTML]="member.doc.description"></p>
       <p *ngIf="member.doc && member.doc.ragFile"><declared-at [doc]="member.doc"></declared-at>
       <p *ngFor="let param of member.parameters; let index = index"><b>Parameter {{index+1}}</b> <type-ref [type]="param.type"></type-ref> <b>{{param.name}}</b><span *ngIf="member.doc" [innerHTML]="paramDesc(member.doc, param.name)"></span></p>
-      <p><b>Returns</b> <type-ref [type]="member.type"></type-ref><ng-container *ngIf="member.doc && member.doc.return"> : <span class="return" *ngIf="member.doc" [innerHTML]="member.doc.return"></span></ng-container>
+      <p *ngIf="!member.isVoid"><b>Returns</b> <type-ref [type]="member.type"></type-ref><ng-container *ngIf="member.doc && member.doc.return"> : <span class="return" *ngIf="member.doc" [innerHTML]="member.doc.return"></span></ng-container>
       <p *ngIf="member.throws">Throws <ng-container *ngFor="let excp of member.throws; let isLast=last"><type-ref [type]="excp"></type-ref><div *ngIf="!isLast" class="sep">, </div></ng-container></p>
       </div>
       </details>
diff --git a/src/app/type-ref.ts b/src/app/type-ref.ts
index 154d4a64ff7e34379e9fc0e8d5c30d41acaf54a6..b0edfcf6277792e9d4bbd42c40f6615d96230eda 100644
--- a/src/app/type-ref.ts
+++ b/src/app/type-ref.ts
@@ -1,8 +1,14 @@
 export class TypeRef {
   name: string;
-  id: string;
+  id?: string;
   args: TypeRef[];
 
+  constructor(name: string, id: string, args: TypeRef[]) {
+    this.name = name;
+    this.id = id;
+    this.args = args;
+  }
+
   static fromJson(json: any): TypeRef {
     var args: TypeRef[] = undefined;
     if (json.a) {
@@ -11,25 +17,13 @@ export class TypeRef {
     if (json.u) {
       // User type.
       if (json.i) {
-        return {
-          name: json.u,
-          id: TypeRef.typeId(json.u, json.i),
-          args: args,
-        };
+        return new TypeRef(json.u, TypeRef.typeId(json.u, json.i), args);
       } else {
-        return {
-          name: json.u,
-          id: TypeRef.simpleName(json.u),
-          args: args,
-        };
+        return new TypeRef(json.u, TypeRef.simpleName(json.u), args);
       }
     } else {
       // Library or built-in type.
-      return {
-        name: json.n,
-        id: undefined,
-        args: args,
-      };
+      return new TypeRef(json.n, undefined, args);
     }
   }
 
@@ -48,6 +42,10 @@ export class TypeRef {
     }
   }
 
+  get isVoid(): boolean {
+    return this.name == 'void';
+  }
+
   static typeId(name: string, idPattern: string): string {
     return idPattern.replace('%', TypeRef.simpleName(name));
   }