#5 - Organizado o código e incluido alguns comentarios.