Codigo organizado, separado em classes e traduzido pro português para melhor entendimento.