terrible hack to get coffeescript to not include the _ref, _ref1, etc as part of the toplevel function.
reindent this mess, and fix some things.
switch away from @register(), and add some missing types
lots of little fixes
wild reindent action
a stupid amount of binding changes.  must figure out how this needs to look.