Renamed most classes to mach the naming in the paper. Added JavaDoc comments where needed.