separate dependency between serv & ui using Observer pattern