Commiting the second attempt for the exam preparation. (not fully finished).