a lousy introduction to OOP