employ Observer Pattern and Layout Manager