Implementação com base na classe oferecida pelo Fabio commit 4: Alterações conforme orientações