edit flyweight explanation