A guess at class design.