Better named classes, and additional documentations.