Adicionado algumas verificações e tratamento de erros