Add flyweight, proxy pattern