impl Flyweight pattern