Criação de construturores, metodos equals e hashcode e alterações diversas.