update command, adapter, bridge, abstract factory