update interfaces. forcing to use observer pattern