flyweight design pattern added