revision of OOP lab