Incorporando alterações realizadas pelo autor Bruno.