* templated observer and MVC