Eiffel implementation