Move things around before refactoring for JSDuck.
Refactored for JSDuck.
JSDuck documentation added.