Projeto final do curso refatorado, com namespaces,