updated rules on the interface. (Liskov)