Just changed the big part of the comments to use JsDoc format