introduce contracts of object model