adicionando a nova implementação sem readers and writers (acho)