Add Flyweight Pattern