Object Oriented Programming in Eiffel