This is an example for Design patterns