Adds comments and renames classes to make more sense