While true, coding against an interface implies that any implementation that obeys the contract of the interface is ok.  In this case, it's not (the contract does not provide enough functionality).