added flyweight pattern example