• Are you sure a "SiegeState" IS-A "TankState" ?

    This breaks the evoluability since if you change TankState, you will have side effects on SiegeState that you don't want.

    Inheritance should be done carefully.