practical object oriented development sample