Acrescentei alguns comentarios nas classes para dá uma explicada no
código.