OOP3 homework.