cool example of builder design pattern