Alterado para eliminar um pouco de código duplicado.