refatoração sugerida nos comentários da issue #218