added interface abstraction for example classes