Simple observer pattern done as a learning process.