final version 1.0 - ainda e possivel melhorar