pequenas adaptações do observer e uns casos de teste.