demos for design patterns