Adding some interfaces to design by contract.