classes, objects and states