case classes, abstract override, lazy vals examples added