Added the MVC version with Observer pattern and multiple views