Task 3.4 implemented. Visior pattern implemented.