understanding this.type