Yes. Simple rule: if you change the behaviour of an interface even
slightly, sub-class it.
Let me clarify a little bit here, because it's bugging me. Usually, an
object can take an interface and implement new custom behavior without
any problems (interfaces generally are supposed to decuple interaction
from implementation… as it's done in Java… with, say "implements
Runnable"). However, in this particular instance, it seems that it's not
possible to reuse an interface in this way (maybe it's some C thing, or
maybe Storage is not actually defined as an interface but as an object).
Or then it's an implementation problem, and there is little point changing
the specification ?
I don't see how a new interface object would make programming its behavior
more easy.