S7 is an object-oriented programming system for R that combines the approachable style of S3 with the explicit structure of S4. It gives you clearly defined classes, properties that check their values, and methods that can respond to the classes of multiple arguments.