OMG so many bug fixes and commenting.