nothing special , just practice of design pattern