abstraction. Problem 1 - implemented.